2016-12-31 38 views
-2

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

解决方案 -

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

请提出解决方案,如果存在满足我的需求。

编辑 -

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

+0

我同意@ gordonlinoff的回答,你可能不需要一个中间的“链接”表。但我也同意他的看法,你确实想要达到什么目标并不明确。但我敢打赌,如果你在sql小提琴中创建了一个最小的表格示例,那么你可以从我或其他人那里快速得到答案。 –

+0

你的写作不清楚。请举例说明你所描述的一切。 – philipxy

回答

1

这太长了评论。

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

目前还不清楚联动是怎么回事哪一种方式,但无论你想在每一个ABZIDC,或者你想AIDBIDCIDZ