Pomysł wywodzący się ze schematu Geneapro i 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
Możesz więc mieć wydarzenie życiowe typu „narodziny”, a identyfikator roli mówi ci, kim byli rodzice, a kim było dziecko. Może to zostać rozszerzone na małżeństwa, zgony, rozwody, rodziców zastępczych, rodziców zastępczych (gdzie możesz mieć 3 lub 4 rodziców w bardzo skomplikowanym związku) itp.
Jeśli chodzi o przechowywanie bardziej odległych relacji, możesz je obliczyć. Na przykład możesz obliczyć ojca kogokolwiek, pobierając osobę pełniącą rolę „ojca” z pasującym identyfikatorem zdarzenia. Możesz wtedy uzyskać ojca tej osoby i dziadka oryginalnej osoby. Wszędzie tam, gdzie ktoś jest nieznany, stwórz osobę z nieznanymi danymi.