多个表需要与公共表具有一对多的关系

时间:2016-12-31 13:53:28

标签: sql database-design

假设我有一个包含A,B,C和Z表的SQL数据库。所有三个表A,B和C与表Z都有一对多的关系。我想到下面提到的解决方案,但需要建议或更好这个问题的解决方案,如果有的话。

解决方案 -

  • 再创建一个名为'LinkZ'的表,它与表'Z'
  • 有一对多的关系
  • 将外键字段添加到表'LinkZ'的表A,B和C
  • 这样,将来如果有更多的表添加到需要与表'Z'关系的数据库,我们只需要将外键添加到新添加的'LinkZ'表中,因为它已经有一对多的关系。

请提出满足我需求的解决方案。

编辑 -

@Gordon,“如果所有的表与Z都有”1-many“关系,那么你根本就不需要链接表。当你的关系是多对多时,你需要一个链接表”。我需要你从答案中引用的这种友好关系。但是如果按照传统方式然后我需要在Z中添加AID,BID,CID以实现1-Many与Z然后'Z'表包含许多列,其中表示与其他表的外键(将来可能还包括其他表)相同的关系,所以在这种情况下,我想避免只有外键的Z中的许多列)这就是为什么我创建了虚拟表'LinkZ',它为其他表A,B和C提供了这个所有表都有1-Many的错觉与Z的直接关系。

1 个答案:

答案 0 :(得分:1)

评论太长了。

如果所有表格都有" 1-many"与Z的关系,那么你根本不需要链接表。当您的关系是多对多时,您需要一个链接表。

目前还不清楚链接的方式,但您要么ZIDAB都要C,要么{{1} {}}中的{},AIDBID