एक विचार जो जेनेप्रो स्कीमा से आता है और 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
तो आपके पास "जन्म" प्रकार की जीवन घटना हो सकती है, और role_id आपको बताता है कि माता-पिता कौन थे, और बच्चा कौन था। इसे विवाह, मृत्यु, तलाक, पालक माता-पिता, सरोगेट माता-पिता (जहां आपके बहुत जटिल संबंध वाले 3 या 4 माता-पिता हो सकते हैं) आदि तक बढ़ाया जा सकता है।
जहाँ तक अधिक दूर के सम्बन्धों को संचित करने का प्रश्न है, आप इनकी गणना कर सकते हैं। उदाहरण के लिए, आप किसी भी व्यक्ति के पिता की गणना उस व्यक्ति को प्राप्त करके कर सकते हैं जिसकी 'पिता' की भूमिका मेल खाने वाली event_id से हो। तब आप उस व्यक्ति के पिता को प्राप्त कर सकते हैं, और आपके पास मूल व्यक्ति का दादा है। कहीं भी कि कोई अज्ञात है, अज्ञात डेटा वाले व्यक्ति को बनाएं।