Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Hierarchiczne wyświetlanie danych., ParentID vs L/R tree
Grzesiek23
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


Witam!

Mam taką zagwozdkę, która z metod wyświetlania danych (wg hierarchii) jest lepsza.
Najprostsza to definiowanie elementu nadrzędnego (ParentID). Ale spotkałem się też z drzewkiem/zagnieżdżeniem (left/right tree).

Czy jedynym plusem przemawiającym za skorzystaniem z metody nr 2 jest to, że mogę wyświetlić więcej niż jeden poziom podrzędnych rekordów dla danego poziomu poprzez tylko jedno zapytanie?
Bo w pierwszym przypadku, jeśli chciałbym wyświetlić do 3 poziomów, to muszę oczywiście wykonać dwa zapytania.

I tak na marginesie - może ktoś podrzuci jakiś ciekawym tutkiem na temat drugiej metody. Google'owałem trochę, ale tak od A do Z przykładu nie znalazłem.
Go to the top of the page
+Quote Post
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Tutaj - dział Graphs and Hierarchies -> Trees... etc.
Go to the top of the page
+Quote Post
Grzesiek23
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


Dzięki wielkie.

A czy różnica między tymi rozwiązaniami to ta jedyna, którą wymieniłem powyżej?

Czy coś jeszcze przemawia za "drzewkiem"?

Mam takie pytanie. Mam pobraną tablicę (id, name, parent_id). Jak teraz mogę sprytnie (bez wykonywania kolejnych zapytań) wyświetlić zagnieżdżone pozycje, tj.:
--- kategoria 1
------ kategoria 2
---------- kategoria 3
------ kategoria 4
---------- kategoria 5
---------- kategoria 6

Mógłby mi ktoś pomóc? Raczkuję dopiero (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Po pierwsze, żadna z metod nie jest lepsza - może co najwyżej w pewnych przypadkach być lepsza.
Po drugie, pytasz o najbardziej podstawowe zagadnienia, które były już poruszane i są dostępne w Google'u.
Po trzecie, pamiętaj, że zawsze możesz łączyć metody by móc korzystać z jeden w jeden sytuacji i drugiej w innej sytuacji.
Go to the top of the page
+Quote Post
Grzesiek23
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.12.2009

Ostrzeżenie: (0%)
-----


W sumie racja :-)
Przeszukalem trochę i mam jeszcze jedno pytanie.

Poprawcie mnie, jeśli się mylę - idea drzewka sprawdza się tylko wtedy, gdy mamy jeden element ROOT?
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Niekoniecznie. Większość (jak nie wszystkie) z popularnych algorytmów na przechowywanie struktur drzewiastych obsługują wiele korzeni - "rootów".
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:30