我见过人们经常使用单独的表来存储表之间的关系。
实施例, 表Company_companys有两列,一个是nodeid,它是一个公司ID,一个linkid是另一家公司的公司ID。
为什么人们在公司表格中使用额外的列完成同样的事情时会这样做?是出于性能原因吗?或者还有其他原因吗?
编辑:感谢大家的答案和示例,我现在明白,为了在需要多对多关系时实现First Normal Form,需要一个单独的表来存储多个链接。在考虑上述问题时,我几乎忘记了多对多关系的概念,所以我从一对多的关系角度思考它:)
答案 0 :(得分:9)
这可能是因为它代表了 MANY TO MANY 的关系。根据您提到的方法,您只有 ONE TO MANY 关系。
因此,在您的示例中,如果您的表语义意味着代表可能与许多其他公司相关的任何公司,那么您需要一个单独的表。
答案 1 :(得分:2)
答案 2 :(得分:1)
解决多对多( .. )关系的问题。使用带有外键的第三个表创建2个一对多关系,因为多对多关系通常是错误的数据库设计。