Een idee dat voortkomt uit het Geneapro-schema en 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
Dus je zou een levensgebeurtenis kunnen hebben van het type "geboorte", en de role_id vertelt je wie de ouders waren en wie het kind. Dit kan worden uitgebreid tot huwelijken, overlijden, echtscheidingen, pleegouders, draagouders (waarbij u 3 of 4 ouders kunt hebben met een zeer gecompliceerde relatie), enz.
Wat betreft het opslaan van verder weg gelegen relaties, deze kunt u berekenen. U kunt bijvoorbeeld de vader van iemand berekenen door de persoon met de rol 'vader' te krijgen met een overeenkomend event_id. Je kunt dan de vader van die persoon krijgen, en je hebt de grootvader van de oorspronkelijke persoon. Overal waar iemand onbekend is, creëer de persoon met onbekende gegevens.