Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Store Relationship (Family) дърво

Идея, която идва от схемата Geneapro и 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. След това можете да получите бащата на този човек и имате дядото на първоначалния човек. Навсякъде, където някой е неизвестен, създайте лицето с неизвестни данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP 7 RC3:Как да инсталирате липсващ MySQL PDO

  2. Как да се свържете с база данни с помощта на Workbench MySQL клиента

  3. Как да направя функцията mysqli connect?

  4. Топ 10 най-добри практики в MySQL

  5. Как да ПОРЪЧАТЕ ПО поле varchar като номер?