5

该图显示了我为部分数据库提出的布局。我关心的是价格范围以及这些附加到 [节目] 和 [预订] 的方式。需要有一个价格范围列表(如标题),但同一个范围可以有多个值,具体取决于它所附的节目(周五的标准票可能是 10 英镑,而周六的标准票可能是英镑11)。

在我看来,使用这种方法,它们将是很多几乎相同的数据——在 [showpriceband] 中有很多 5 英镑门票的条目,唯一的区别是 showid。

有更好的方法吗?

建议的数据库布局

4

3 回答 3

2

Show由于和之间的关系PriceBand是多对多的,因此定义一个中间表来定义这种关系是一种标准的方法。在您的情况下,除了链接列(到Show和的外键PriceBand)之外,您还定义了链接的其他属性。

这是一种有效的方法,无需减少这些额外字段的可能重复。

于 2013-11-12T10:49:36.933 回答
2

关于这个问题:

在我看来,使用这种方法,它们将是很多几乎相同的数据——在 [showpriceband] 中有很多 5 英镑门票的条目,唯一的区别是 showid。

您可以通过在 show 和 showpriceband 表之间添加连接表来避免这种重复。我认为这不是很自然,但这取决于您的数据。(也许你也应该重命名 showpriceband ......)

或者,也许您可​​以考虑将字段从 showpriceband 移动到 priceband。(value, ongeneralsale) 在那里增加了一些冗余,但使 showpriceband 表更像连接表。

于 2013-11-12T11:00:09.470 回答
2

我认为你的方法是正确的。你有

  • 不同的票种
  • 不同的节目

他们的关系是n:n。解决 an:n 关系的正确解决方案是使用单独的表(在您的情况下为 ShowPriceBand)来列出所有组合。

于 2013-11-12T10:45:20.533 回答