sql复杂的双向层次关系

时间:2015-01-13 20:23:32

标签: sql database database-design

我有一张主表people

id name
1  I
2  Bro
3  Mom
4  Father

我需要为人与人之间的关系服务。为此,我有一个表relations

id  people_id   relation_id   type
1   1           2             2 //brothers
2   3           1             3 //sun
3   3           4             1 //married

问题是如何保持这种复杂的关系?

例如,用户3与1有关,但由于关系3-4,用户4也与1具有相同的关系。另一个例外,1-2关系& 3-1关系,产生3-2关系等......

也许这是复制所有关系或改变设计的好方法?

1 个答案:

答案 0 :(得分:0)

如果您有父母和子女的关系,则不需要拥有兄弟关系类型。这可以在程序上得到解决,因为同一个父亲或母亲的所有子女关系都将成为兄弟姐妹。

您的关系类型应为:

  • 的家长
  • 已婚

然而,你确实需要为婚姻提供互惠行。