drzewka metoda 5
sd - 22-02-2006 21:48
drzewka metoda 5
witam
zabralem sie wlasnie za napisanie swojej klasy w php do obslugi drzewek chce wykorzystac do przechowywania danych baze mysql.
nie rozumiem za bardzo metody 5 z http://www.dbf.pl/faq/tresc.html?rozdzial=1#o1_9
zrobil juz ktos to w bazie mysql?
max - 22-02-2006 21:48
sd napisał(a): > witam > > zabralem sie wlasnie za napisanie swojej klasy w php do obslugi drzewek > chce wykorzystac do przechowywania danych baze mysql. > > nie rozumiem za bardzo metody 5 z > http://www.dbf.pl/faq/tresc.html?rozdzial=1#o1_9 > > zrobil juz ktos to w bazie mysql? > > A co uzasadnia w twoim rozwiązaniu stosowanie tej metody ?
A co do zrozumienia to może popatrz np. na wybrana gałązkę:)
SQL-ORACLE-LINUX-GLIBC2 1 3 4 9
Aby opisać położenie GLIBC2 są rekordy:
LINUX-GLIBC2 GLEBOKOSC 4 9 1
ORACLE-GLIBC2 GLEBOKOSC 3 9 2
SQL-GLIBC2 GLEBOKOSC 1 9 3
Czyli wszystkie kombinacje Elementu który jest opisywany i kolejnych po drodze do wierzchołka.
Wiec jak będziesz chciał dodać kolejny poziom SQL-ORACLE-LINUX-GLIBC2-GDLIB 1 3 4 9 99
to rekordów dopisać trzeba będzie 4 1 99 4 2 99 3 4 99 2 9 99 1
MAX
sd - 22-02-2006 21:48
max napisał(a):
> A co uzasadnia w twoim rozwiązaniu stosowanie tej metody ?
a co? zla metoda to jest? polecisz lepsza do mysql?
> Czyli wszystkie kombinacje Elementu który jest opisywany i kolejnych po > drodze do wierzchołka. > > Wiec jak będziesz chciał dodać kolejny poziom > SQL-ORACLE-LINUX-GLIBC2-GDLIB > 1 3 4 9 99
oo dzieki za objasnienie :)
a da sie to jednym zapytaniem do mysql dodac? jak bedzie 1000 poziom to troche bezsensu, 1000 wpisow trzeba dodawac?
max - 22-02-2006 21:48
sd napisał(a): > max napisał(a): > >> A co uzasadnia w twoim rozwiązaniu stosowanie tej metody ? > > > a co? zla metoda to jest? > polecisz lepsza do mysql? > > >> Czyli wszystkie kombinacje Elementu który jest opisywany i kolejnych >> po drodze do wierzchołka. >> >> Wiec jak będziesz chciał dodać kolejny poziom >> SQL-ORACLE-LINUX-GLIBC2-GDLIB >> 1 3 4 9 99 > > > oo dzieki za objasnienie :) > > a da sie to jednym zapytaniem do mysql dodac? > jak bedzie 1000 poziom to troche bezsensu, > 1000 wpisow trzeba dodawac?
Podobno w MYSQL juz pojawiły sie trigery i procedury wiec sie da
piszesz tylko procedurke która bedzie w petli dodawac rekordy i bedzie działać. Wiec teoretycznie wydae mi sie ze sie da
Co do tego problemu 1000 to to sa koszty zalet jakie posiada ta metoda :) A liniowy przyrost nie stanowi problemu. Zreszta widział ktos drzewko 1000 poziomów ?
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 22-02-2006 21:48
max wrote: > sd napisał(a): > >> a da sie to jednym zapytaniem do mysql dodac? >> jak bedzie 1000 poziom to troche bezsensu, >> 1000 wpisow trzeba dodawac? > > > Podobno w MYSQL juz pojawiły sie trigery i procedury > wiec sie da > > piszesz tylko procedurke która bedzie w petli dodawac rekordy i bedzie > działać. > Wiec teoretycznie wydae mi sie ze sie da
W pętli 1000 insertów? To może być nie najlepszy pomysł. To da się zrobić kilkoma instrukcjami SQL (insert + select i insert + delete) Kiedyś się tu rozpisałem jak to zrobić.
> Co do tego problemu 1000 to to sa koszty zalet jakie posiada ta metoda > :) A liniowy przyrost nie stanowi problemu. Zreszta widział ktos drzewko > 1000 poziomów ?
Widział. Dla tych, co co przeraża ich ilość danych, niech pomyślą ile może zająć rekurencyjne znalezienie korzenia w klasycznej implementacji.
-- P.M.
sd - 22-02-2006 21:48
Paweł Matejski napisał(a):
> W pętli 1000 insertów? To może być nie najlepszy pomysł. > To da się zrobić kilkoma instrukcjami SQL (insert + select i insert + > delete) > Kiedyś się tu rozpisałem jak to zrobić.
a moglbys napisac wg jakich slow poszukiwac tej rospiski?
> Widział. Dla tych, co co przeraża ich ilość danych, niech pomyślą ile może > zająć rekurencyjne znalezienie korzenia w klasycznej implementacji.
ja wlasnie chce miec takie drzewo :) duze, i chcialem skorzystac z tej metody albo z nested sets./
Pawel - 24-02-2006 14:45
Dnia Mon, 20 Feb 2006 20:05:57 +0100, sd napisał(a):
> zrobil juz ktos to w bazie mysql?
Witam
Ja robiłem Po naprawdę drobnych modyfikacjach działa dodawanie kategorii opisane tutaj: http://www.depesz.com/various-sqltre...ementation.php
pozdrawiam Paweł
sd - 28-02-2006 13:11
Pawel napisał(a):
> > Ja robiłem Po naprawdę drobnych modyfikacjach działa dodawanie kategorii > opisane tutaj: > http://www.depesz.com/various-sqltre...ementation.php >
a moglbys podac jakis namiar na siebie? gygy albo tlen jezeli bylbys chetny mi pomoc to prosze cie bardzo.
pozdrawiam
=?ISO-8859-2?Q?Marcin_Jask=F3lski?= - 28-02-2006 13:11
sd wrote: > witam > > zabralem sie wlasnie za napisanie swojej klasy w php do obslugi drzewek > chce wykorzystac do przechowywania danych baze mysql. > > nie rozumiem za bardzo metody 5 z > http://www.dbf.pl/faq/tresc.html?rozdzial=1#o1_9 > > zrobil juz ktos to w bazie mysql?
Może przyda Ci się metoda zastosowana przeze mnie kilka razy. W porównaniu z opisanymi w faq jest prostacka ;-), ale ma swoje zalety.
Metoda polega na przechowywaniu kategorii w tablicy: <id, kategoria> Id to klucz sztuczny. Na siłe można się bez niego obejść. Istotna jest kolumna kategoria. Relacja "A jest podkategorią B" jest zdefiniowana : B.kategoria jest prefiksem A.kategoria. Mam nadzieję, że to jasne. Ważne jest to, żeby oznaczenia kategorii wydłużać zawsze o stałą liczbę znaków - wpp system jest niejednoznaczny.
Przykład: Kategoria "Pojazdy" to "P". Kategoria "Pojazdy Silnikowe" to "P001". Kategoria "Samochody Osobowe" to "P001001" Kategoria "Samochody Ciężarowe" to "P001002" Kategoria "Rowery" to "P002"
Jak wyszukać wszystkie pojazdy silnikowe? SELECT * from KATEGORIE where kategoria like 'P001%'. Chamskie :-)
Zalety: -prostota -typowa operacja wyszukiwania podkategorii _powinna_ wykorzystać indeksowanie i wykonywać się dostatecznie szybko - ale trzeba by sprawdzić jak to się zachowa na konkretnym silniku bd.
Wady: -liczba podkategorii jest ograniczona przez długość identyfikatora (np. 3 znaki) Ale w praktyce to nie problem. Można dobrać tyle znaków, żeby wystarczyło. Już 3 znaki to pona 40000 podkategorii. -dodawanie nowych podkategorii może wyjść nieelegancko.
-- Pozdrawiam, Marcin Jaskólski
sd - 28-02-2006 13:11
Marcin Jaskólski napisał(a):
> Jak wyszukać wszystkie pojazdy silnikowe? SELECT * from KATEGORIE where > kategoria like 'P001%'. Chamskie :-) > > Zalety: > -prostota > -typowa operacja wyszukiwania podkategorii _powinna_ wykorzystać > indeksowanie i wykonywać się dostatecznie szybko - ale trzeba by > sprawdzić jak to się zachowa na konkretnym silniku bd. > > Wady: > -liczba podkategorii jest ograniczona przez długość identyfikatora (np. > 3 znaki) Ale w praktyce to nie problem. Można dobrać tyle znaków, żeby > wystarczyło. Już 3 znaki to pona 40000 podkategorii. > -dodawanie nowych podkategorii może wyjść nieelegancko. >
na forum.php.pl jest artykul jak zbudowac drzewko - wlasnie ta metoda jest opisywana, lacznie z gotowa klasa w php do obslugi tego :) tylko troche nie dzialala za dobrze
dzieki
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL] Rekurencja? Tabela, która tworzy drzewko
[mysql] drzewka i wersje językowe
[mysql] Drzewko kategorii i takie tam....
drzewko depesza w Mysql
jak zapytac aby wyswietlilo sie drzewko
cos do drzewka
metoda zwracająca id komponentu (przycisku)
drzewa metoda 5 - zmiana węzła
drzewa faq metoda 5 - usuwanie
drzewka sql metoda 5 faq
zanotowane.pldoc.pisz.plpdf.pisz.plradioaktywni.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|