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