| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal P3CKIV: 20.06.2009 11:27 | |
|
Potreboval by som od vás poradiť. Programujem vlastný e-shop, pričom umožňujem zákazníkovi mať neobmedzený počet kategórií a subkategórií. Každá subkategória môže mať zas neobmedzený počet jej subkategórií atp. Je to vlastne ako diskusia v strome. No a problém nastáva, keď chcem tie kategórie vypísať v strome (<ul>).
Rozmýšľal som, že kategórie môžem vypisovať rekurziou (neefektívne, ak je mnoho kategórií) alebo tým "traverzováním kolem stromu". Aké by bolo vaše riešenie? Príp. napíšte pri vašom nápade aj schému DB. Moja obsahuje len ID, Názov, Popis a ID nadradenej (základ)
_________________ V príprave... |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 20.06.2009 16:42 | |
|
Jednoznačne traverzovanie. Rekurzia je v tomto prípade síce elegantnejšia, ale za cenu viacerých SQL dotazov čo je niečo, čo nechceš (a nechcel by som písať rekurzívne SQL dotazy -- hoci sa to dá).
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | Napísal shaggy: 20.06.2009 17:13 | |
|
Ani jedno riešenie nebude "univerzálne". Pri traverzovaní bude náročnejší presun celých kategórií, pri rekurzií zase výpis.
Musíš si vybrať sám, čo budeš používať častejšie. Keďže nepredpokladám, že by si často menil celú štruktúru (presúvanie podkategórií), tak to traverzovanie bude pre teba lepšie. Alebo môžeš pri rekurzii vyskúšať cacheovanie výsledkov (napr. pri pridaní/zmene kategórie si vždy niekam uložíš celý strom), ale to už záleží od konkrétneho použitia, či to má vôbec zmysel.
_________________ Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme. |
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|