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

时间:2014-07-15 12:44:58

标签: php mysql

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

e.g。

帐户和联系人之间存在n:m关系,因此我添加了一个Account2Contacts参考表,其中包含要关联的帐户和联系人的ID。此表的多行允许将帐户连接到多个“联系人”和“联系人”以与多个帐户关联。

那很好,但是同一个表的多行之间的n:m关系怎么样?我预见到了问题。 Account2Account表的每一行(id,from_id,to_id)仅描述一个方向上的帐户之间的连接。

因此,如果在添加连接Account1-> Account2时Account1具有id 10和Account2 id 20,则插入将

例如,

addLink(1,10,20)。

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

我已经玩弄了自动生成倒数插入的想法(2,20,10),但我担心三通关系或更多关系会发生什么。我将不得不添加连接的所有排列,以便组中的任何帐户都可以在针对'from_id'字段的一次查找中找到它的所有关系。

这种关系是否存在我不知道的设计范式?

0 个答案:

没有答案