En idé, der kommer fra Geneapro-skemaet og 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
Så du kunne have en livsbegivenhed af typen "fødsel", og rolle_id'et fortæller dig, hvem der var forældrene, og hvem der var barnet. Dette kan udvides til ægteskaber, dødsfald, skilsmisser, plejeforældre, surrogatforældre (hvor du måske har 3 eller 4 forældre med et meget kompliceret forhold) osv.
Hvad angår lagring af fjernere relationer, kan du beregne disse. For eksempel kan du beregne faderen for enhver ved at få den person, der har rollen 'far', med et matchende event_id. Du kan så få den pågældendes far, og du har den oprindelige persons bedstefar. Alle steder, hvor nogen er ukendt, skal du oprette personen med ukendte data.