![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 2 Dołączył: 15.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanko jak lepiej zaprojektować bazę danych aby było łatwiej sortować po kategoriach i podkategoriach? 1 wariant: Tabela: ogloszenia (id, osoba, ogloszenie, kategoria, podkategoria) czy 2 wariant: Tabela: ogloszenia (id, osoba, ogloszenia, id_kat, id_podk) Tabela: kategorie (id_kat, kategoria) Tabela: podkategorie (id_podk, podkategoria) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Masz na mysli pytanie? Normalne. Jesłi wczytuję całe drzewo to zapytanie jest prymitywne reszta odbywa się w php. Chcesz powiedzieć że czytasz całą tabele a w po stronie skryptu dopiero uzyskujesz poszukiwane przez siebie drzewo? Jeśli odczytuję tylko potomków (pierwsze pokolenie) jednego rodzica zapytanie jest również prymitywne. Chyba nie zrozumiałaś tego co napisałem - bo ja pisze o drzewie która ma więcej niż jednego potomka - a ty sie upierasz przy relacji rodzic - dziecko. Tego trzeba umieć używać. A niby co to znaczy automatycznie? Jest łatwe i czytelne. Kwestia oswojenia się z tabelą rekurencyjną. Jakbyś nie zauważyła to pobranie jakiegokolwiek drzewa w podanym w artykule sposobem wymaga jednego zapytania sql co jest ogromnym zyskiem wydajności i daje Ci porządną metodę która pasuje do wszystkich struktur drzewiastych jakies stosujesz w projekcie (rozumiem że wiesz na czym polega DRY) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chcesz powiedzieć że czytasz całą tabele a w po stronie skryptu dopiero uzyskujesz poszukiwane przez siebie drzewo? Jeśi potrzebuję całego drzewa to tak. Po co sobie utrudniać jak można ułatwić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chyba nie zrozumiałaś tego co napisałem - bo ja pisze o drzewie która ma więcej niż jednego potomka - a ty sie upierasz przy relacji rodzic - dziecko. To Ty nie rozumiesz idei tej tabeli. Wystarczy między rekordami relacja rodzic-dziecko. Jeśli jest więcej poziomów zagłębienia niż jeden, to po prostu niektóre rekordy będą powiązane zarówno w górę jak i w dół. Można w ten sposób robić nieskończenie wiele poziomów zagłębień na bardzo prostej tabeli. Co więcej jeden rodzic będzie mógł mieć wiele dzieci, bo kilka rekordów może mieć w odpowiednim polu wpisane to samo id jako rodzica. Wierz mi. To działa. Wejdź sobie na www.bicykle.pl/index09.php i idź do galerii zdjęć. Jej struktura oparta jest właśnie na takiej tabeli. A Administrator może w każdym katalogu dodawać kolejne podkatalogi budując drzewo. To że nie rozumiesz idei działania takiej tabeli nie znaczy, że ona nie działa, bo ten przykład pokazuje, że właśnie jest tak jak mówię. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 05:12 |