sql >> Database >  >> RDS >> Mysql

MySQL Store-relatie (stam)boom

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.



  1. SQL Server 2005 implementatie van MySQL VERVANGEN IN?

  2. Unieke beperking van Postgres versus index

  3. Waarom MySQL gebruiken boven flatfiles?

  4. Machtigingen voor het maken van een trigger in mysql