- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要在 php 和 MySQL 中构建家谱。我对那里缺乏开源可定制的 html 家谱构建软件感到非常惊讶,但我离题了。我花了很多时间阅读有关存储 MySQL 有向图和家谱的内容。一切对我来说都有意义:有一个包含节点(人)的表和一个包含边(关系)的表。
我遇到的唯一问题是我不确定存储不一定相邻的关系的最佳方式,例如 sibling 和祖 parent 关系。起初我不认为这有什么大不了的,因为我可以无形地强制执行 parent (每个人都有 parent )来解决这些联系。
但是,我还需要能够存储可能没有共同 parent 的关系,例如浪漫伴侣。我读过的所有内容都表明存在亲子关系,但由于浪漫伴侣没有共同的 parent (希望如此),我不确定如何将其存储在边缘表中。我应该使用不同的表,还是什么?如果它在同一张表中,我该如何表示呢?只要我在与不熟悉的关系中这样做,我也不妨与家人一起这样做。
总结起来,三个问题:
family
标志吗?感谢任何帮助,如果有人对某些 javascript/html 家谱构建软件有任何建议,那就太好了。
最佳答案
来自 Geneapro schema 的想法和 RootsMagic .
person
------
person_id
name (etc)
life_event_types
----------------
life_event_type_id
life_event_type_description (divorce, marriage, birth, death)
life_events
-----------
life_event_id
life_event_type_id
life_event_description
life_event_date
life_event_roles
----------------
life_event_role_id
life_event_role (mother, father, child)
person_event_role
-----------------
person_id - who
life_event_id - what happened
life_event_role_id - what this person did
所以你可以有一个类型为“出生”的生活事件,role_id 告诉你谁是 parent ,谁是 child 。这可以扩展到结婚、死亡、离婚、养 parent 、代理 parent (您可能有 3 或 4 个关系非常复杂的 parent )等。
至于存储更远的关系,你可以计算这些。例如,您可以通过获取具有匹配 event_id 的“父亲”角色的人来计算任何人的父亲。然后你可以得到那个人的父亲,你就有了原来那个人的祖父。在某人未知的任何地方,创建具有未知数据的人。
关于php - MySQL 存储关系(家族)树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773938/
我需要在 php 和 MySQL 中构建家谱。我对那里缺乏开源可定制的 html 家谱构建软件感到非常惊讶,但我离题了。我花了很多时间阅读有关存储 MySQL 有向图和家谱的内容。一切对我来说都有意义
我尝试将数据添加到数据库。但是有这个错误。 Illuminate \ Database \ Eloquent \ MassAssignmentException fam 'fam' 是名称优先参数。
在 lisp 家族(编辑:lisp-1)语言中是否有一种方法可以根据其作为函数或参数的位置来区分符号求值(即在求值时重写该符号的求值) ? 作为一个例子(我不需要这个功能,这是一个例子),我想在一组对
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!