【问题标题】:Best database design to find relationships between two persons寻找两个人之间关系的最佳数据库设计
【发布时间】:2021-07-22 16:53:05
【问题描述】:

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

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

找到 Person-2 和 Person-5 之间关系的最佳方法是什么?这个例子还不够大,但是如果有 5 个家族或者 10000 个呢?我想,如果家族太多,那么有必要引入深度的概念。也许改变数据库设计会更好?这可以使它像树或图吗?关于如何以不同方式解决此问题的一些想法?

【问题讨论】:

    标签: sql database-design relationship


    【解决方案1】:

    一旦您超过了少数节点和它们之间的一些关系,这将成为一个非常复杂的问题:有基于此类挑战的整个数学分支以及计算结果需要多长时间。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-13
      • 2011-01-25
      • 1970-01-01
      • 2011-08-23
      • 2016-03-12
      • 2011-06-28
      • 2022-06-29
      • 1970-01-01
      相关资源
      最近更新 更多