Jak se dnes dělá drobečková navigace v PHP?

X

Re:Jak se dela dneska drobeckova navigace na strankach v php
« Odpověď #15 kdy: 26. 01. 2018, 09:42:49 »
V databázi je uložen strom kategorií. Každý element má kromě odkazu na svého rodiče ještě URL na popisek své kategorie. Každá položka ceníku má odkaz na některý z listů tohoto stromu. Při zobrazování drobenkové navigace stačí projít cestu od listu ke kořeni tohoto stromu kategorií.

Pokusy o realizaci v mod_rewrite jsou cestou do pekel. Čtyřřádkový .htacces obvykle stačí.
To je ale hodně naivní implementace, daleko efektivnější je ukládat rovnou celou cestu k dané kategorii, ne jen odkaz na rodiče.
Tedy např. /1/12/13/58.

To tedy rozhodně není naivní implementace. Je pouze neefektivní pro čtení, ale to se má řešit až následně optimalizací. Ukládat celou cestu rovnou je přímo klasickým příkladem nevhodné předčasné optimalizace a kdo tohle dělá, skončí dříve či později v pekle vlastního bídného designu. Stromová struktura s vazbou potomků na rodiče by měla být primárním uložením kategorií, protože je dobře normalizovaná a dá se s ní tudíž lépe manipulovat. Celá cesta pro potřeby rychlého čtení by se měla generovat sekundárně do nějaké cachovací tabulky (nebo třeba dalšího sloupce v primární tabulce), případně do výkonné externí cache (např. memcached), pokud je to třeba z hlediska výkonu. V malých "školních" projektech, kde se počítá s minimální zátěží, kolikrát ale není takové cachování ani potřeba.


Re:Jak se dnes dělá drobečková navigace v PHP?
« Odpověď #16 kdy: 26. 01. 2018, 10:27:52 »
jj ta cesta je "fakt dobra" kdyz mas dragndrop strom kategorii aby tu strukturu mohl uzivatel(editor) upravovat. stejna tak kdyz mas strukturu kde muze mit kategorie vice rodicu, kde produkt muze byt ve vice kategoriich atd.
Děkuji za možnost editace příspěvku.