该图显示了我为部分数据库提出的布局。我关心的是价格范围以及这些附加到 [节目] 和 [预订] 的方式。需要有一个价格范围列表(如标题),但同一个范围可以有多个值,具体取决于它所附的节目(周五的标准票可能是 10 英镑,而周六的标准票可能是英镑11)。
在我看来,使用这种方法,它们将是很多几乎相同的数据——在 [showpriceband] 中有很多 5 英镑门票的条目,唯一的区别是 showid。
有更好的方法吗?
该图显示了我为部分数据库提出的布局。我关心的是价格范围以及这些附加到 [节目] 和 [预订] 的方式。需要有一个价格范围列表(如标题),但同一个范围可以有多个值,具体取决于它所附的节目(周五的标准票可能是 10 英镑,而周六的标准票可能是英镑11)。
在我看来,使用这种方法,它们将是很多几乎相同的数据——在 [showpriceband] 中有很多 5 英镑门票的条目,唯一的区别是 showid。
有更好的方法吗?
Show
由于和之间的关系PriceBand
是多对多的,因此定义一个中间表来定义这种关系是一种标准的方法。在您的情况下,除了链接列(到Show
和的外键PriceBand
)之外,您还定义了链接的其他属性。
这是一种有效的方法,无需减少这些额外字段的可能重复。
关于这个问题:
在我看来,使用这种方法,它们将是很多几乎相同的数据——在 [showpriceband] 中有很多 5 英镑门票的条目,唯一的区别是 showid。
您可以通过在 show 和 showpriceband 表之间添加连接表来避免这种重复。我认为这不是很自然,但这取决于您的数据。(也许你也应该重命名 showpriceband ......)
或者,也许您可以考虑将字段从 showpriceband 移动到 priceband。(value, ongeneralsale) 在那里增加了一些冗余,但使 showpriceband 表更像连接表。
我认为你的方法是正确的。你有
他们的关系是n:n。解决 an:n 关系的正确解决方案是使用单独的表(在您的情况下为 ShowPriceBand)来列出所有组合。