我正在構建一個家譜+歷史[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