![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich,
Piszę aplikację w której do nawigacji chciałem skorzystać z dowolnej ilości kategorii i subkategorii. Czyli struktua drzewiasta implementowana za pomocą tabel MySQL - pykuś. Owszem, jeśli się to zrobi w prostacki sposób zakładając tabelę trzykolumnąwą Id, categoryName i parentId. Wtedy żeby wyświetlić drzewo trzeba wykonywać wiele zapytań do bazy co jest szalenie nieefektywne. Znalazłem implementację drzewa w tabelach bazy w inny sposób, lepszy pod względem wydajności, wystarczy bowiem jedno zapytanie. (Tutaj) Tylko teraz mam pytanie, jak przesuwać elementy w drzewie ? Zrozumiale dla mnie jest że należy zmieniać wartości kolumn Left i Right, ale za cieńki jestem z MySQL żeby sensowne zapytanie w tym celu ułożyć. Bardzo proszę o pomoc, siedziałem nad tym przez święta, ale za nic na świecie mie nie wychodzi. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 5 Dołączył: 8.07.2004 Skąd: gdynia Ostrzeżenie: (0%) ![]() ![]() |
[...] Znalazłem implementację drzewa w tabelach bazy w inny sposób, lepszy pod względem wydajności, wystarczy bowiem jedno zapytanie. (Tutaj) Tylko teraz mam pytanie, jak przesuwać elementy w drzewie ? Zrozumiale dla mnie jest że należy zmieniać wartości kolumn Left i Right, ale za cieńki jestem z MySQL żeby sensowne zapytanie w tym celu ułożyć. Bardzo proszę o pomoc, siedziałem nad tym przez święta, ale za nic na świecie mie nie wychodzi. Pozdrawiam Bazując na tym linku co podałeś to powinieneś zmieniać tylko wartość parent ponieważ category_id to unikalny (przynajmniej powinien być) identifikator danej kategorii, więc jak go zmienisz co Ci się całe drzewko rozwali. Elementy przesuwasz zmieniając wartość parent na id kategorii/podkategorii, do której chcesz przenieść dany element. @astropanic: chyba nie do końca go zrozumiałem. Ale art jest ciekawy Ten post edytował angel2953 27.12.2006, 15:51:02 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 18:51 |