Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在sql中创建一元多对多关系_Mysql_Database_Database Design - Fatal编程技术网

Mysql 如何在sql中创建一元多对多关系

Mysql 如何在sql中创建一元多对多关系,mysql,database,database-design,Mysql,Database,Database Design,我知道如何创建多对多关系,但我特别寻找一元多对多关系。有什么想法或教程可以看吗?还是真正好的解释?就像多对多一样,您需要联接表。e、 g: 你们有5张桌子:TblA,TblB,TblC,TblD,TblE 他们每个人的id都是PK 您可以使用以下字段创建联接表: Aid、Bid、Cid、Did、Eid真正执行多对多一元关系与二进制多对多关系没有太大区别。您仍然需要一个联接表来表示多对多关系,但是该联接表的列都将与单主题表相关 一个典型的例子可能是电子商务环境中的产品捆绑包,其中产品捆绑包可能有自

我知道如何创建多对多关系,但我特别寻找一元多对多关系。有什么想法或教程可以看吗?还是真正好的解释?

就像多对多一样,您需要联接表。e、 g:

你们有5张桌子:TblA,TblB,TblC,TblD,TblE

他们每个人的id都是PK

您可以使用以下字段创建联接表:


Aid、Bid、Cid、Did、Eid

真正执行多对多一元关系与二进制多对多关系没有太大区别。您仍然需要一个联接表来表示多对多关系,但是该联接表的列都将与单主题表相关

一个典型的例子可能是电子商务环境中的产品捆绑包,其中产品捆绑包可能有自己的产品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

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

您能否讨论相关表的结构(如主题表和联接表)?您能否链接到一元多对多关系的定义?“一元”如“二进制的对立面”?也就是说,一个单独的表与它自身存在(多对多)关系?