![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 17.04.2006 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Buduję system w którym jest ok 600 kategorii. Maksymalne zagnieżdżenie jest potrójne. Załóżmy kategoria A ma dzieciaka B, a ten dzieciaka C. Wywołujemy kategorię C i chcę wyświetlić całą gałąź w pasku nawigatora czyli np A:B:C. Zwykle wrzucałem w postaci tablicy do pliku (na zasadzie cache) drzewo kategorii i funkcjami rekurencyjnymi wyciągałem to co mnie interesowało. Jednak zastanawiam się jakie rozwiązanie jest tu najbardziej optymalne. Jak Wy rozwiązujecie takie przypadki? -------------------- www.fachoweuslugi.pl | www.zlec-usluge.pl | www.pokazsie.pl
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
W tym konkretnym przypadku (tj. wyświetlania wszystkich gałęzi od korzenia do liścia) model nested set jest jednym z wygodniejszych.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 17.04.2006 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Tak, tylko ja już korzystam z metody wykorzystującej parent id i depth. Większe serwisy jak allegro i pokrewne, często wyciągają całe drzewa kategorii, gałęzi itd. Dlatego zastanawiam, się czy bez super wydajnych komputerów można to zrobić w sposób optymalny, pomijając model "Nested set". Czy po prostu najlepiej cachować.
-------------------- www.fachoweuslugi.pl | www.zlec-usluge.pl | www.pokazsie.pl
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Tak, tylko ja już korzystam z metody wykorzystującej parent id i depth A nested sets przy wyswietlaniu to niby z czego korzysta, jak nie z depth? Nested sets jest jak juz poprzednik wspomnial bardzo wygodnym rozwiazaniem, na poczatku sa z tym problemy, ale jak sie juz dojdzie do wprawy to jest git.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem jak jest w mysql ale w oraclu mozna zrobic to jednym zapytaniem majac tylko id orazu masz tez level - jest to pseudokolumna
moze znajdziesz cos na wzor tego |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 17.04.2006 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Jestem tak zakręcony, że zapomniałem o kolumnie, którą jeszcze dodałem root, która zawiera id głównej kategorii. I według niej wyjmę i szybko posortuje.
-------------------- www.fachoweuslugi.pl | www.zlec-usluge.pl | www.pokazsie.pl
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A nested sets przy wyswietlaniu to niby z czego korzysta, jak nie z depth? Wcale nie ma konieczności trzymania takiej kolumny w bazie w przypadku drzewa typu nested set depth liczy się w zapytaniu i to żadna filozofia. Polecam coś nieco na ten temat. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:48 |