Autor | Zpráva | ||
---|---|---|---|
Closure Profil * |
#1 · Zasláno: 7. 11. 2011, 13:04:12
Dobry den,
pouzivam v mySQL takzvanou "closure table" na ukladani stromove struktury dat. CREATE TABLE `kategorie` ( `id_kategorie` int(10) unsigned NOT NULL AUTO_INCREMENT, `nazev` varchar(45), PRIMARY KEY (`id_kategorie`) ); CREATE TABLE `kategorie_closure` ( `rodic` int(10) unsigned NOT NULL, `potomek` int(10) unsigned NOT NULL, `hloubka` int(10) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`rodic`,`potomek`) ); Jakym dotazem/zpusobem dostanu cely strom? Dekuji za kazdou radu. |
||
__construct Profil |
#2 · Zasláno: 7. 11. 2011, 13:49:53 · Upravil/a: __construct
Closure:
Pokiaľ používaš dvojúrovňové menu použi tento dotaz: SELECT * FROM kategorie JOIN kategorie_closure ON kategorie.id_kategorie = kategorie_closure.potomek WHERE kategorie_closure.rodic IN ( SELECT kategorie.id_kategorie FROM kategorie JOIN kategorie_closure ON kategorie.id_kategorie = kategorie_closure.potomek WHERE kategorie_closure.rodic = 0 -- alebo 1 (neviem presné dáta) AND kategorie_closure.hloubka = 1 ) ORDER BY kategorie_closure.rodic, kategorie_closure.hloubka |
||
Časová prodleva: 3 dny
|
|||
Closure Profil * |
#3 · Zasláno: 10. 11. 2011, 10:23:18
Dekuji, funguje to. Jak mam zostavit dotaz pokud chci "podkategorii v podkategorii"'?? Myslim tim viceurovnove menu..
|
||
Kajman_ Profil * |
#4 · Zasláno: 10. 11. 2011, 16:55:51
Closure:
V mysql není nativní podpora stromových struktur, proto se doporučuje mít více předpočítaných sloupců, viz. uvedený odkaz. |
||
Časová prodleva: 12 let
|
0