家谱中的家谱算法是怎么做的?
例如,父母 A 有一个孩子 B 和 C。那么,如果孩子 C 将来也产生一个孩子怎么办。它如何使用数据库添加到树中?
我查看了 Jit 的RGraph树图,它使用 JSON 数据填充树。我可能想通过从数据库填充 JSON 来扩展树。但是,如果我向数据中添加更多子项,我无法弄清楚数据库会是什么样子。我认为如果它只适用于 JSON 是可行的。但是当涉及到动态数据时,我无法完全掌握。
什么模型/结构适合解决这类问题?
家谱中的家谱算法是怎么做的?
例如,父母 A 有一个孩子 B 和 C。那么,如果孩子 C 将来也产生一个孩子怎么办。它如何使用数据库添加到树中?
我查看了 Jit 的RGraph树图,它使用 JSON 数据填充树。我可能想通过从数据库填充 JSON 来扩展树。但是,如果我向数据中添加更多子项,我无法弄清楚数据库会是什么样子。我认为如果它只适用于 JSON 是可行的。但是当涉及到动态数据时,我无法完全掌握。
什么模型/结构适合解决这类问题?
它可以像这样简单:
FK1 和 FK2 表示 FOREIGN KEY(FATHER_ID 引用 PERSON_ID,MOTHER_ID 也引用 PERSON_ID)。如果未知,可以将 FATHER_ID 和/或 MOTHER_ID 保留为 NULL。
这个模型并不完美。例如,它不强制父母的性别(父亲是男性,母亲是女性),它只代表亲生父母,而不是其他类型的关系,例如收养(所有这些都可以做到,但在某些方面有一定的复杂性)模型)。
然而,它非常简单,可以自然地遍历(以递归方式)、分析或导出。
例如,父母 A 有一个孩子 B 和 C。那么,如果孩子 C 将来也产生一个孩子怎么办。它如何使用数据库添加到树中?
D
的孩子C
可以这样表示:
PERSON_ID FATHER_ID MOTHER_ID
A
B A
C A
D C
或者像这样,如果C
是母亲:
PERSON_ID FATHER_ID MOTHER_ID
A
B A
C A
D C
IMO it's an adjacency list model with some extension. For example to have 2 parents you can simply add a special (end) node or you can mark the node with a comment.
可能会使用 GEDCOM 模型查看之前的帖子
我在这两个表中都使用了带有共同 Union_ID 键的 Union 和 Person 表。在 Person 表中,这指的是父母。在图中,Union 可能有 2 个入境父母和无限数量的出境子女。