防止数据库设计中的循环引用

时间:2013-04-12 17:40:58

标签: database database-design circular-reference

我有这些表格:

- 位置(ID)

- 音乐会(ID,LocationID_FK)

- 放映时间(ID,ConcertID_FK)

- SeatBlock(ID,ShowtimesID_FK)

- 座位(ID,SeatBlockID_FK)

现在我有一个名为SeatValue的实体。这个实体是一些座位的值,如Golden,Silver等。对于这个实体,每个记录必须有一个指定的Showtime。 我认为这是解决方案:

SeatValue(ID,ShowtimesID_FK)

和席位变为:

- 座位(ID,SeatBlockID_FK,SeatValueID_FK)

但我认为它创造了一个特定的参考资料。不是吗? 我怎么能改变它?

2 个答案:

答案 0 :(得分:2)

在这种情况下,我建议如下:

  • 位置(ID,元数据)
  • 音乐会(ID,LocationID_FK,元数据)
  • 放映时间(ID,ConcertID_FK,元数据)
  • SeatBlock(ID,Location_FK,元数据)
  • 座位(ID,SeatBlockID_FK,元数据)
  • SeatPricing(ID,Seat_FK [或SeatBlock_FK,如果按块完成定价],ShowTime_FK,元数据)
  • SeatAssignment(ID,SeatPricing_FK,Seat_FK [如果座位定价按块完成],元数据)

答案 1 :(得分:1)

  • 剧院存在。
  • 音乐会存在。
  • 剧院分为座位区。
  • 座椅是座椅座的一部分。
  • 音乐会的演出定于剧院举行。
  • 表演有待售座位。

enter image description here