Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Store-Beziehungsbaum (Stammbaum).

Eine Idee, die aus dem Geneapro-Schema stammt und 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

Sie könnten also ein Lebensereignis vom Typ „Geburt“ haben, und die Rollen-ID sagt Ihnen, wer die Eltern und wer das Kind waren. Dies kann auf Eheschließungen, Todesfälle, Scheidungen, Pflegeeltern, Ersatzeltern (wo Sie möglicherweise 3 oder 4 Elternteile mit einer sehr komplizierten Beziehung haben) usw. ausgeweitet werden.

Was das Speichern entfernterer Beziehungen betrifft, können Sie diese berechnen. Sie können beispielsweise den Vater einer Person berechnen, indem Sie die Person mit der Rolle „Vater“ mit einer passenden event_id abrufen. Sie können dann den Vater dieser Person erhalten, und Sie haben den Großvater der ursprünglichen Person. Überall dort, wo jemand unbekannt ist, erstellen Sie die Person mit unbekannten Daten.