Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Struktura bazy drzewa genealogicznego
Forum PHP.pl > Forum > Bazy danych > MySQL
Odin
Witam,
Nie wiem czy to odpowiedni dział ale zastanawiam się nad stworzeniem skryptu drzewa genealogicznego. Prezentacja będzie oparta na jquery, itd. jakieś fajne efekty przesuwania od jednego członka rodziny do drugiego, itd. ale mniejsza o to.

Zastanawiam się jak powinna wyglądać struktura bazy:

1 tabela to członkowie rodziny: id, imię, nazwisko, data urodz., data śmierci, płeć, zdjęcie itd.

No właśnie i co dalej?

2 tabela to pokrewieństwo: id, id_1, id_2, pokrewieństwo (1 - rodzic, 2 - rodzenstwo, 3 - dziadek/babcia, 4 - wujek/ciocia, itd.)

W zwykłym drzewie raczej wystarczyłoby określenie rodzica ale ja chciałbym też pokazać pokrewieństwa, przynajmniej te najbliższe. Czy moje podejście jest dobre?

Wtedy załóżmy, że członek rodziny

7 | Jan | Kowalski | 22.12.1967 | NULL | M | jan_kowalski.jpg

i

14 | Irena | Nowak | 12.09.1989 | NULL | K | irena_nowak.jpg


Pokrewienstwo:

1 | 7 | 14 | 4

Czyli Jan Kowalski jest dla Ireny Nowak wujkiem (ponieważ on jest M).

Nie wiem czy to nie będzie zbyt skomplikowane, co myślicie?
markuz
A nie wystarczy tak:

tbl_osoba
- id
- mama_id
- tata_id
?

Każda osoba posiada tylko 1 matkę i 1 ojca - żadne dodatkowe tabele nie są potrzebne.
Z tego już możesz wywnioskować czy ktoś jest rodzeństwem, wujkiem, babcią, dziadkiem itd.

Np. rodzeństwo to : SELECT * FROM tbl_osoba WHERE mama_id = $moja_mama_id AND tata_id = $moj_tata_id
Wujkowie, Dziadkowie itp. to kwestia odpowiednich zapytań.
Pyton_000
nested set twoim wybawcą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.