如何在我的sql中创建一对多的关系

时间:2013-02-05 19:04:43

标签: mysql database database-design

我知道如何创建多对多的关系,但我特意寻找一个多对多的UNARY关系。我可以查看任何想法或教程吗?还是真的很好解释?

2 个答案:

答案 0 :(得分:1)

真正做多对多的一元关系与二元多对多关系并没有太大的不同。您仍然需要一个连接表来表达多对多关系,但是此连接表的列都将与单个主题表相关联。

这可能是电子商务设置中产品捆绑包的典型示例,其中产品捆绑包可能具有自己的产品ID,但也与该捆绑包中包含的一组产品相关。当然,任何产品都可以以任何方式捆绑(因此多对多关系)。表结构可能如下所示:

product
---------
product_id (primary_key)
product_name
...other product attributes

bundle
---------
product_id (foreign key to product table)
product_component (also a foreign key to product table)
....any bundle specific attributes not derivable from component attributes

同样,应用程序中用户(即“朋友”,“喜欢”等)之间的关系也可能以类似的方式表达。

答案 1 :(得分:0)

就像多对多你需要连接表一样。 e.g:

你有5个表:TblA,TblB,TblC,TblD,TblE

他们每人都有PK作为PK。

使用字段创建连接表:

Aid,Bid,Cid,Did,Eid