Sql 寻找两个人之间关系的最佳数据库设计

Sql 寻找两个人之间关系的最佳数据库设计,sql,database-design,relationship,Sql,Database Design,Relationship,我想使用数据库查找两个人之间的关系。例如,我有这样一个数据库: Person: Id| Name 1 | Edvard 2 | Ivan 3 | Molly 4 | Julian 5 | Emily 6 | Katarina Relationship: Id| Type 1 | Parent 2 | Husband\Wife 3 | ex-Husband\ex-Wife Relationships: Id| Perso

我想使用数据库查找两个人之间的关系。例如,我有这样一个数据库:

Person:             
Id| Name
1 | Edvard            
2 | Ivan            
3 | Molly
4 | Julian
5 | Emily
6 | Katarina

Relationship:
Id| Type
1 | Parent
2 | Husband\Wife
3 | ex-Husband\ex-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

找出第二人称和第五人称之间关系的最佳方法是什么?这个例子不够大,但如果有5个家庭或10000个家庭呢。我认为,如果有太多的家庭,那么就有必要引入深度的概念。也许更改数据库设计会更好?这有可能使它像树或图形一样吗?关于如何以不同的方式解决这个问题的一些想法?

一旦你超过了几个节点和它们之间的一些关系,这就变成了一个非常复杂的问题:围绕这类挑战以及计算结果所需的时间,有许多数学分支

对于任何非平凡的节点/关系集,您都需要考虑部署图形数据库,例如