Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 15.01.2008 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam wszystkich
Przeczytałem pewien artykuł http://www.sitepoint.com/article/hierarchical-data-database Niestety nie opisuje jak poradzić sobie z typową sytuacją wielopoziomowego menu w serwisie. Mam dane w takim formacie: -message1 --message11 --message12 -message2 --message21 --message22 ---message221 ---message222 ----message2221 ----message2222 -----message22221 -----message22222 ----message2223 ---message223 -message3 --message31 ---message311 ---message312 ---message313 --message32 -message4 --message41 --message42 -message5 --message51 --message52 Chciałbym wyświetlić tylko to: -message1 -message2 --message21 --message22 ---message221 ---message222 ----message2221 ----message2222 -----message22221 -----message22222 ----message2223 ---message223 -message3 -message4 -message5 Dlatego, że wybrałem pozycję menu: -----message22221 Macie jakiś pomysł jak to osiągnąć korzystając ze struktury bazy danych opisanej w artykule? Z góry dziękuję. Pozdrawiam. Mariusz |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
http://artykuly.zyxist.com/czytaj.php/drzewa_w_php_i_mysql <- tu masz artykuł umożliwiający szybkie pobranie danego wycinka drzewa.
Możliwości: - Szybkie pobieranie fragmentu drzewa od danego węzła do wszystkich jego liści. - Szybkie pobieranie ścieżki do korzenia. - Szybkie zliczanie węzłów podrzędnych. Wady: - Podczas pobierania fragmentu drzewa nie da się na poziomie bazy zignorować gałęzi drzewa od zadanego węzła w dół. - Dość skomplikowana implementacja, zwłaszcza przy bardziej zaawansowanych operacjach. - Nie da się pobrać pojedynczego poziomu drzewa. - Modyfikacja drzewa wymaga co najmniej kilku zapytań SQL. Stanowczo odradzam implementowanie tego na czymś innym niż InnoDB i transakcjach, bo inaczej kłopoty mamy murowane. Stosowałem ten algorytm w połączeniu z polem parent_id, którego używałem do wyświetlania pojedynczego poziomu drzewa w administracji i "płaskich" operacji na danym poziomie. Poszukaj dobrze na forum, gdyż był tu swego czasu temat z podaną całą masą różnych implementacji. |
|
|
|
sanneo Drzewo z MySQL metodą trawersji. 12.10.2009, 21:26:40
dr_bonzo Pobierz sobie top level
a do tego cale poddrzewo 2... 13.10.2009, 09:09:36
sanneo Mam także parent_id, ale właśnie sztuka polega na ... 13.10.2009, 19:03:00
dr_bonzo CytatMam także parent_id, ale właśnie sztuka poleg... 17.10.2009, 14:00:21
sanneo dr_bonzo, nie pomogłeś mi w ogóle, ale za to sie w... 2.11.2009, 16:51:07
alegorn stary temat, ale w sumie wart by dac odpowiedz
o ... 12.04.2012, 15:02:14
Pilsener A ja polecam drzewa metodą IP. Poza parent_id doda... 13.04.2012, 08:34:48
alegorn taak naporawde sa trzy metody, ktore sie stosuje (... 13.04.2012, 11:53:35 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 22:03 |