我正在建立一个家谱 + 历史 [PHP] 网站,以展示我妈妈为她父母的圣诞礼物整理的家谱报告。这棵树至少将基于一个 MySQL 数据库(“family”),我目前正在其中使用两个表:“persons”和“marriages”。我还有第三张桌子,“亲子关系”,但后来认为它是不必要的。
表的结构如下:
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 索引由两个 ID 列组成。(*请原谅我使用性别歧视术语;这只是出于结构目的——以防万一,因为我是 MySQL 新手——而且我的家人无论如何都是相当右翼和保守的,但它确实没有'无关紧要,没有任何意义,如果您愿意,不妨将其视为配偶1和配偶2。我个人对任何人都没有同性恋恐惧症或偏见。结束免责声明。愿所有人平安。)
所以......你明白我为什么要为“婚姻”维护一个单独的表:每段婚姻都有自己的数据必须包含在内,在配偶双方的记录中重复每段婚姻的数据是很愚蠢的。我之前在“persons”表中有一个“spouseID”列,但是我还需要手动匹配每个配偶的 ID,并且无法弄清楚如何将该列链接到相应的婚姻列(在“婚姻表)无论如何,所以我放弃了它。
如果有人能告诉我如何让“婚姻”中的两个配偶 ID 列来显示人的姓名,或者这将是盛大的。
但首先我需要知道如何链接这两个表(可能在“persons”表中包含一个“spouse”列,它以某种方式与“marriages”表集成在一起),其次是关于如何显示的任何提示层次树。
非常感激。
PS 这棵树相当广泛,跨越约 6 代。大约有 45 个“人”,我认为有 16 段婚姻,无论这些信息是否值得……