我正在构建一个家谱+历史[PHP]网站,以陪伴和展示我妈妈的家谱报告,她为她父母的圣诞礼物放在一起。树至少将基于一个MySQL数据库('家族'),我目前正在使用两个表:'人'和'婚姻'。我还有第三张“亲子关系”表,但后来认为这是不必要的。MySQL系列树:层次结构,婚姻参考和显示
中的表的结构如下:在
PERSONS
- 'personID' [tinyint, pk]
- 'firstName'
- 'lastName'
- 'sex' [set{'M','F'}]
- 'birthDate'
- 'fatherID' [internal rel = 'personID']
- 'motherID' [internal rel = 'personID']
- 'birthPlace'
- 'deathDate'
- 'deathPlace'
- 'birthRecord' (filename)
MARRIAGES
- 'husbandID' [internal rel = 'persons.personID']
- 'wifeID' [internal rel = 'persons.personID']
- 'date'
- 'place'
- 'record'
PK索引 '婚姻' 表包括两个编号的cols的。 (*请原谅我使用性别歧视条款;它仅仅是为了结构目的 - 以防万一,我是MySQL的新手 - 而且我的家人也是非常右翼和保守的,但它确实没有如果你愿意的话,我不认为是配偶1和配偶2,我个人根本不会对任何人产生同性恋和偏见。最终免责声明。对所有人都是和平的。)
所以......你会明白我为什么要为“婚姻”维护一张单独的表格:每一对婚姻都有自己的数据必须包括在内,重复夫妻双方记录中的每次婚姻数据都是愚蠢的。我在'persons'表中有一个'spouseID'列,但是我需要手动匹配每个配偶的ID,并且无法弄清楚如何将该列链接到相应的婚姻专栏(在'婚姻'表),所以我放弃了。
如果有人能够启发我如何在'婚姻'中同时显示个人姓名的配偶ID列,而不是显示个人的姓名,也可能是盛大的。
但主要是我需要知道我怎样才能连接两个表(可能在'persons'表中包含一个'配偶'列,它与'婚姻'表集成在一起),其次是关于如何去显示分层树。
非常感谢。
P.S.这棵树相当广泛,大约有6代。有大约45人',我认为16婚姻,无论这些信息可能是值得的...
您的结构是关系良好的。我看到的唯一问题是,您无法轻松查询婚姻状况并找到某人的特定婚姻,而无需查询husbandID和wifeID列。我个人会将这种关系转移到相关的子女婚姻关系表上。你实际上与人有同样的问题。无论如何,在你的查询中,你只需要利用从婚姻到人际关系的每个关系的内部连接,并将所有人的列添加到行中。 – gview
我不知道你的意思是“把这种关系转移到一个相关的子女婚姻关系表”。我究竟该如何构建? (和'人'。)我试图研究所有这些术语和技术,但最终我遇到的所有这些零星和稀疏相关的信息都不利于我,我需要与手头任务相关的示例(并且我可以与我一起工作目前正在与之合作以便理解)。 – user163831
我不明白你的意思是说我与'人'有什么关系,这一点对我来说都不是很清楚...... – user163831