Ý tưởng đến từ lược đồ Geneapro và 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
Vì vậy, bạn có thể có một sự kiện trong đời thuộc loại "sinh" và role_id cho bạn biết ai là cha mẹ và ai là con. Điều này có thể được mở rộng cho các cuộc hôn nhân, qua đời, ly hôn, cha mẹ nuôi, cha mẹ thay thế (nơi bạn có thể có 3 hoặc 4 cha mẹ với mối quan hệ rất phức tạp), v.v.
Còn để lưu trữ những mối quan hệ xa hơn, bạn có thể tính toán những điều này. Ví dụ:bạn có thể tính Cha của bất kỳ ai bằng cách lấy người có vai trò 'cha' với event_id phù hợp. Sau đó, bạn có thể lấy cha của người đó, và bạn có ông nội của người ban đầu. Bất kỳ nơi nào mà ai đó không xác định, hãy tạo người đó với dữ liệu không xác định.