Autor Zpráva
iru
Profil
Zaujalo mě toto téma: http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=113720, konkrétně traverzování okolo stromu. Dívala jsem se na to i vyzkoušela. A přemýšlím o tom, zda by to bylo vhodné řešení pro strom kategorií, kde se bude nacházet cca do max. 100 kategorií. Doposud jsem toto řešila pomocí rekurze. Web o který se mi jedná bude mít předpokládám větší zátěž, tak bych ráda trošku optimalizovala počet SQL dotazů. Prostě chtěla bych nějaké efektivní řešení a zajímaly by mě vaše názory a zkušenosti. Díky.
tiso
Profil
iru: pokiaľ nemáš napevno obmedzenú hĺbku vnorenia kategórií (2-3 vnorenia), tak použi túto techniku. Optimalizovať počet dotazov môžeš s využitím cache - môžeš si celý predpripravený strom kategórií uložiť do cache, takto si vueš uložiť aj celé stránky, takže do databázy takmer nemusíš ísť.
DoubleThink
Profil *
Úzké hrdlo je určitě databáze a tam vytáhneš všechny prvky stromu jedním dotazem, takže no problem.
Rekuze v množině se 100 položkami si myslím ještě nepředstavuje větší zátěž. Ale hotový strom kategorií je určitě vhodný subjekt k nějakému kešování.
iru
Profil
vnoření tam moc nemám, ale když do budoucna bude moc položek, tak by mohlo hrozit, že bude nutnost kategorie ještě rozdrobit. Je to dilema, rekurzí je to jednoduché, ale blbě se mě řeší např. drobečková navigace, kdy znám poslední položku a musím zpětně zjišťovat ty nadřazené. To traverzování je zase složitější, ale na toto se mi zdá lepší... Možná bych se v budoucnu vyhnula komplikacím při rozšiřování stromu kategorií, to by možná za trochu předělávání mohlo stát...
srigi
Profil
Pri nested-set (traverzovanie o. s.) existuje aj také šikovné SQLko, ktoré ti vráti všetky nody na ceste ku koreňu - ideálne pre breadcrumb navigáciu - link (hľadaj "Retrieving a Single Path").
iru
Profil
srigi:
díky za ten link, to je opravdu šikovné...

ještě koukám na genealogické stromy, asi to vyhraje traverzování okolo stromu, vzhledem k tomu, že strukturu kategorií tvořím já a bude víceméně stabilní a uživateli budu předkládat jen výpisy buď celé struktury kategorií, nebo jen určitých uzlů, podle požadavků...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0