Nápad, který pochází ze schéma Geneapro a 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
Takže můžete mít životní událost typu „narození“ a role_id vám řekne, kdo byli rodiče a kdo bylo dítě. To lze rozšířit na sňatky, úmrtí, rozvody, pěstouny, náhradní rodiče (kde můžete mít 3 nebo 4 rodiče s velmi komplikovaným vztahem) atd.
Co se týče ukládání vzdálenějších vztahů, ty si můžete spočítat. Můžete například vypočítat otce kohokoli tak, že osobě, která má roli „otce“, získáte odpovídající event_id. Pak můžete získat otce této osoby a máte dědečka původní osoby. Kdekoli, kde je někdo neznámý, vytvořte osobu s neznámými daty.