Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Hierarchia danych
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam,

mam problem nie wiem jak skonstułować bazę danych oraz jak pobierać z niej odpowiednie, dane siedzę nad tym już od tyg. i nic sensownego nie mogę wymyślić.
Potrzebuje zrobić coś na wzór drzewa genealogicznego. Trzymając się dalej tego drzwa gen. najniżej w linii są pradziadkowie od id 1-8 czyli mamy 4 pary następnie 9-12 dziadkowie 13,14 rodzice oraz 15 dziecko w view.php?id=15 wyświetlam informacje o dziecku imie,nazwisko,wiek etc. potrzebował bym wyświetlić również informacje o rodzicach dziadkach pradziadkach itd o ile są informace o nich w bazie danych.

Zastanawiam sie jak zapisywać informacje o rodzicach tzn.

czy to ma być jedna tabela w której będę miał informacje o osobie oraz ciąg znaków oddzielony "," czy 2 tabele z osobami i pokrewieństwem.

wer. 1
[TABELA LUDZIE]
id,imie,nazwisko,rodzice
15|Jan|Kowalski|13,14
14|Dorota|Kowalska|11,12
13|Mirosław|Kowalski|9,10

wer. 2
[TABELA LUDZIE]
id|imie|nazwisko|pokrewienstwo_id
15|Jan|Kowalski|7
14|Dorota|Kowalska|6
13|Mirosław|Kowalski|5

[TABELA POKREWIENSTWO]
id|ojciec_id|matka_id
7|13|14
6|11|12
5|9|10

Kolejnym problemem jest pobieranie danych pobranie rodziców dla id 15 nie stanowi żadnego problemu czy tla wer.1 czy dla wer.2

problem zaczyna się gdy pobierzemy dane rodziców wiem że to powinna być pętla rekurencyjna która sprawdza czy są dane dla ojca i matki jak tak to na podstawie nich sprawdza kolejne dane itd.
Xart
Nie rozumiem w czym masz problem...
ghastblood
chodzi mi o podpowiedz jak powinny wyglądać tabele w mysql i jak zrobić taką pętlę rekurencyjną
Wazniak96
Wersja numer 2 raczej odpada bo przykład z życia. Jaś jest dzieckiem Tomka Kowalskiego i Marii Kowalskiej. Ania jest córką Tomka Kowalskiego i Ireny Nowak. Jaś i Ania są rodzeństwem... smile.gif

Dlatego też skłaniam się ku wersji pierwszej z tym, że zapisałbym ojca i matkę w osobnych kolumnach.
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.