我想使用数据库查找两个人之间的关系。例如,我有一个这样的数据库:
Person:
Id| Name
1 | Edvard
2 | Ivan
3 | Molly
4 | Julian
5 | Emily
6 | Katarina
Relationship:
Id| Type
1 | Parent
2 | HusbandWife
3 | ex-Husbandex-Wife
Relationships:
Id| Person_1_Id | Person_2_Id | Relation_Id
1 | 1 | 3 | 2
2 | 3 | 4 | 3
3 | 3 | 2 | 1
4 | 4 | 2 | 1
5 | 1 | 6 | 3
6 | 1 | 5 | 1
7 | 6 | 5 | 1
找到人物2和人物5之间的关系的最佳方法是什么?这个例子还不够大,但如果有5个家庭或10000个呢。我认为,如果有太多的家庭,那么就有必要引入深度的概念。也许改变数据库设计会更好?这有可能使它像树或图形一样吗?关于如何以不同的方式解决这个问题的一些想法?
一旦你超过了少数几个节点和它们之间的一些关系,这就变成了一个非常复杂的问题:数学中有很多分支都是基于这种类型的挑战以及计算结果需要多长时间。
对于任何非琐碎的节点/关系集,您都需要考虑部署一个图形数据库,例如Neo4j