sql >> Database teknologi >  >> RDS >> Mysql

MySQL butiksforhold (slægtstræ).

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.



  1. Sådan returneres id'er på Inserts med mybatis i mysql med annoteringer

  2. Opret forbindelse til SQL Server via PDO ved hjælp af SQL Server Driver

  3. MySQL Vælg WHERE IN givet rækkefølge

  4. Hvordan får man et heltal fra MySQL som heltal i PHP?