Sql 多个表需要与公共表有一个多关系

Sql 多个表需要与公共表有一个多关系,sql,database-design,Sql,Database Design,假设我有一个SQL数据库,它的表类似于a、B、C和Z。所有三个表a、B和C都与表Z有一对多的关系。我想到了下面提到的解决方案,但需要建议或更好的解决方案来解决这个问题(如果有的话) 解决方案- 再创建一个名为“LinkZ”的表,该表与表“Z”有一个多个关系 将外键字段添加到表'LinkZ'的表A、B和C中 所以,将来如果有更多的表添加到数据库中,需要与表'Z'建立关系,我们只需要将外键添加到新添加的'LinkZ'表中,因为它已经有一个多个关系 如果存在满足我需求的解决方案,请提出建议 编辑-

假设我有一个SQL数据库,它的表类似于a、B、C和Z。所有三个表a、B和C都与表Z有一对多的关系。我想到了下面提到的解决方案,但需要建议或更好的解决方案来解决这个问题(如果有的话)

解决方案-

  • 再创建一个名为“LinkZ”的表,该表与表“Z”有一个多个关系
  • 将外键字段添加到表'LinkZ'的表A、B和C中
  • 所以,将来如果有更多的表添加到数据库中,需要与表'Z'建立关系,我们只需要将外键添加到新添加的'LinkZ'表中,因为它已经有一个多个关系
如果存在满足我需求的解决方案,请提出建议

编辑-


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

这对于注释来说太长了

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


目前尚不清楚链接的方向,但您要么希望
A
B
C
中的
ZID
,要么希望
AID
BID
CID
中的
Z
,我同意@gordonlinoff的回答,您可能不需要中间的“链接”表。但我也同意他的观点,那就是你到底想要达到什么目标还不清楚。但我敢打赌,如果你用sql FIDLE构建一个表的最小示例,你会很快得到答案,无论是我还是其他人。你的文字不清楚。请举例说明你所描述的一切。