Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
Php 在同一表的多行之间创建n:m关系_Php_Mysql - Fatal编程技术网

Php 在同一表的多行之间创建n:m关系

Php 在同一表的多行之间创建n:m关系,php,mysql,Php,Mysql,通常,我需要在两个表之间创建n:m关系,并使用以下方案: e、 g 帐户和联系人具有n:m关系,因此我添加了一个Account2Contacts引用表,其中包含要关联的帐户和联系人的id。此表的多行允许帐户连接到多个联系人,并允许联系人与多个帐户关联 这很好,但是同一个表的多行之间的n:m关系呢?我预见到了问题。Account2Account表id的每一行,从_id到_id,将只描述一个方向上的帐户之间的连接 因此,当添加连接Account1->Account2时,如果Account1的id为1

通常,我需要在两个表之间创建n:m关系,并使用以下方案:

e、 g

帐户和联系人具有n:m关系,因此我添加了一个Account2Contacts引用表,其中包含要关联的帐户和联系人的id。此表的多行允许帐户连接到多个联系人,并允许联系人与多个帐户关联

这很好,但是同一个表的多行之间的n:m关系呢?我预见到了问题。Account2Account表id的每一行,从_id到_id,将只描述一个方向上的帐户之间的连接

因此,当添加连接Account1->Account2时,如果Account1的id为10,Account2的id为20,则插入将被删除

例如,addLink1、10、20

此连接意味着Account2->Account1,但在“from_id”字段中查找Account2 id将不会显示连接

我曾经尝试过自动生成倒数插入2、20、10的想法,但我关心的是在三方或更多关系中会发生什么。我必须添加所有连接的排列,这样组中的任何帐户都可以在一次对“from_id”字段的查找中找到它的所有关系


对于这种类型的关系,有没有我不知道的设计范例?

这意味着什么是三方关系或更多?在这种情况下,你们的关系是否与情侣之间的关系有所不同?也就是说,如果a1、a2和a3是链接的,那么它是一个完整的图形,或者只是传递连接?那么a1a2a3呢?你能提供更具体的关于你的结构,特别是关于你的关系的方向吗?如果a1->a2为真,但a2->a1为假,则在我的示例中,a1->a2始终表示a2->a1,此外,a1->a2和a1->a3也表示a2->a3。因此,您可以看到,每个正向连接都需要暗示反向连接以及所有间接连接。我希望能够提供任何帐户id,并返回它所连接的所有帐户。这取决于数据库体系结构必须满足的目的。因为若您只想存储信息,那个么请确定,在应用程序中恢复可传递的依赖项,这样就不会存储额外的行。但如果这是关于搜索的话,那么搜索是什么,是什么?我不确定我是否理解。我担心的是,尽管我可以从a1、a2和a3之间的链接中发现a2->a3和a3->a2,但这取决于这些关系是否完好无损