Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> drzewka sqlowe
chmolu
post
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 8.10.2004

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


Witam,

Piszę ten temat bo ogarnęła mnie już całkowita niemoc. Próbuję zaimplementować jakiś sensowny algorytm drzewek do mojego CMFa. Nie chcę korzystać z Nested Sets (left, right), bo to kompletnie nie nadaje się do większych drzew.

Znalazłem coś takiego:
http://fungus.teststation.com/%7Ejon/treeh...reeHandling.htm

Metoda bardzo fajna, ale utknąłem na jednej bardzo istotnej rzeczy - wyświetlaniu drzewa. Teoretycznie, zgodnie z tym co piszą w artykule, by pobrać drzewo (lub daną część drzewa) wystarczy użyć zapytania:

Select Id from Path where AncestorId = 2

Przypuśćmy, że drzewo wygląda tak:
Kod
      rośliny (1)
        / \
      /     \
    /         \
  /             \
owoce(2)  warzywa(3)
    /
  /
banan(4)              


(gdzie cyfry w nawiasach to numery ID elementów -- 'banan' został dodany później niż 'warzywa'). W tym wypadku, używając powyższego zapytania dostanę:

Kod
Rośliny
    Owoce
    Warzywa
       Banan


Czy jest jakiś sensowny sposób, by pobrać odpowiednio posortowane drzewo korzystając z powyższego przykładu?

A może znacie jakieś inne efektywne sposoby przechowywania drzew w bazie danych? Zależy mi przede wszystkim na efektywności i elastyczności. Nested Sets odpadają (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Czy ktos probowal moze przesuwac wezly drzewka metoda depezowa dla MySQL-a < 4.1 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Wrzucanie danych oraz wyswietlanie widze jest b. proste jednak jakikolwiek UPDATE zakrawa na hardcore (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- chmolu   drzewka sqlowe   1.09.2005, 20:50:33
- - sf   co zas odpadaja? poprostu trzeba dodac n-level i ...   1.09.2005, 20:58:59
- - hwao   Ja kozystam z "przerobionych" drzewek ip...   1.09.2005, 21:08:02
- - chmolu   Cytatco zas odpadaja? winksmiley.jpg poprostu trze...   1.09.2005, 21:29:39
- - DeyV   Najlepsze znane (przynajmniej mi) drzewko to drzew...   1.09.2005, 21:34:57
- - Ace   DeyV, tez uzywam drzewka depeszy ;] z tym ze na my...   1.09.2005, 23:08:54
- - chmolu   Przyjrzałem się dokładniej rozwiązaniu depesza. Z ...   2.09.2005, 19:05:40
- - aleksander   ja potwierdzam, ze drzewka IP sa dosyc dobre. Nie ...   2.09.2005, 19:37:49
- - chmolu   drzewka IP? co to oznacza? Immediate Parent?   2.09.2005, 19:42:45
- - aleksander   to drzewka, ktorych galezie rpzedzielone sa dzieln...   2.09.2005, 19:44:23
- - Levabul   Nigdy nie wiedziałem w czym tkwi problem z drzewka...   2.09.2005, 19:49:31
- - SongoQ   Cytatto drzewka, ktorych galezie rpzedzielone sa d...   2.09.2005, 20:02:05
- - chmolu   Cytatto drzewka, ktorych galezie rpzedzielone sa d...   2.09.2005, 20:02:35
- - aleksander   ja u siebie jedna funkcja zrzucam drzewka do pliku...   2.09.2005, 20:03:37
- - SongoQ   Cytatja u siebie jedna funkcja zrzucam drzewka do ...   2.09.2005, 20:06:22
- - hwao   Ja mam to tak: http://windforce.strefaphp.net/code...   3.09.2005, 09:20:30
- - aleksander   Cytat(SongoQ @ 2005-09-02 21:06:22)Cytat ja u...   3.09.2005, 09:48:51
- - chmolu   Sprawdźmy, czy dobrze rozumuję: Kod rośliny ...   3.09.2005, 09:52:47
- - hwao   CytatCo do pobierania drzewa, to chyba będzie to c...   3.09.2005, 10:13:20
- - Ociu   Ja się właśnie zastanawiałem którą z metod użyć i ...   3.09.2005, 11:18:33
- - chmolu   CytatTo jest calego drzewka w gore:) Jak to w górę...   3.09.2005, 11:33:46
- - aleksander   no i o to hwao chodzi:)   3.09.2005, 11:48:26
- - kirkor0   A gdyby pobrał path i potem explodem podzielił pr...   3.09.2005, 12:15:24
- - hwao   a ile to bedzie zapytan do bazy danych policz Jak...   3.09.2005, 12:29:00
- - kirkor0   jedno zapytanie, które zwraca wszystkie wiersze j...   3.09.2005, 12:33:20
- - sf   ze sciezka zapisywana jako string jest taki proble...   3.09.2005, 12:52:43
- - kirkor0   Co do przenoszenia to mgłobybyć UPDATE z odpowiedn...   3.09.2005, 13:36:03
- - aleksander   by the way, jezeli chcesz uzystac parenta w drzewk...   3.09.2005, 22:48:02
- - kirkor0   Cytat(aleksander @ 2005-09-03 23:48:02)kirkor...   5.09.2005, 19:51:29
- - Strzałek   zainteresowałem się ostatnio trochę drzewkami i tr...   20.09.2005, 19:20:17
- - Bartech   Osobiście uważam temat drzewka za trudny i zdradli...   23.09.2005, 15:49:32
- - chmolu   A nie lepiej byłoby podzielić się tym ze wszystkim...   23.09.2005, 17:06:59
- - teles   Moja wersja drzewka robi wszystko co trzeba, przes...   24.09.2005, 00:23:08
- - bela_666   teles pełno, wystarczy poszukać   24.09.2005, 00:27:52
- - Bora   Cytat(hwao @ 2005-09-03 10:13:20)CytatCo do p...   29.09.2005, 01:13:33
- - SongoQ   Cytatale wyświetlanie jest rekurencyjnami zapytani...   29.09.2005, 17:03:14
- - hawk   Zamiast Nested Sets polecam Nested Intervals. Odpa...   29.09.2005, 20:43:37
- - bela_666   hawk, link jest w komentarzach do artykułu o drzew...   29.09.2005, 22:07:53
- - bigZbig   Nested sets (zbiory zagnieżdżone) to ciekawy mecha...   11.01.2006, 14:58:57
- - Levabul   Nie rozumiem trochę zastosowań drzewa. Jak w jedne...   17.01.2006, 20:58:50
- - bigZbig   Cytat(Levabul @ 2006-01-17 21:58:50)Nie rozum...   17.01.2006, 21:42:47
- - AxZx   moglbys ktos podrzucic jakas fajna klase do obslug...   24.01.2006, 22:51:24
- - bela_666   Ja publikowałem na forum jakiś szkic na forum.   24.01.2006, 23:21:55
- - NuLL   Czy ktos probowal moze przesuwac wezly drzewka met...   20.04.2006, 15:43:01
- - scanner   @NuLL: tak, ja - pokazywałem nawet działanie na fo...   20.04.2006, 18:43:19
- - ympans   CytatNigdy nie wiedziałem w czym tkwi problem z dr...   8.10.2006, 17:26:20


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: 4.10.2025 - 22:38