Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wielojęzyczne nested tree
Forum PHP.pl > Forum > Bazy danych
fridge
Witam,
Obecnie tworzę wielojęzyczny sklep przy pomocy Zend Framework. Sklep powinien mieć kategorie produktów zrobione na nested tree. Jak efektywnie przedstawić wielojęzyczne nested tree w bazie danych?
czy coś takiego będzie dobre:

id | level | namePL | lftPL | rgtPL | nameEN | lftEN | rgtEN

przy dwóch językach to jeszcze jakoś wygląda ale jeżeli języków będzie 5-10 to zaczną się schody:]
jakie macie pomysły na wielojęzyczne kategorie sklepu internetowego?
jestem otwarty na propozycje winksmiley.jpg
lDoran
dla mnie to ta tabela jest mało logiczna, zrób produkt jego id i osobne tabele dla języków z id produktu
Crozin
1. Na prawdę potrzebujesz różnego ułożenia drzewa dla różnych wersji językowych? Jeżeli potrzebujesz posortować elementy w konkretnych gałęziach (np. alfabetycznie) zawsze możesz zrobić to już po wygenerowaniu drzewa.
2. Oczywiście tłumaczenia w osobnej tabeli i zwykła relacja jeden-do-wielu.
fridge
to jest tabela kategori produktów a nie samych produktów.

dla jasności algorytmu podaje linka na czym ów algorytm polega:
http://articles.sitepoint.com/article/hier...data-database/2

hmmm, też fakt. samo sortowanie najlepiej przeprowadzić w samej bazie? na bazach aż tak się nie znam:]
php chyba zbyt by obciążał serwer

w jaki sposób posortować to w bazie danych aby można było wyświetlić w kolejności alfabetycznej rozwinięte drzewo w formie listy?

ok mam tabelę:

kategorie:
id | lft |rgt | parent | namePL |nameEN

jak powinno wyglądać zapytanie aby wyświetlić poprawny alfabetyczny widok dla kolumny nazwaPL oraz nazwaEN. np:

root
-aaaa
--a
---alll
---caaa
---xaaa
--c
--x
-bbbb
--a
--c
--x
-cccc
--a
--c
--x
-zzzz



Crozin
Cytat
php chyba zbyt by obciążał serwer
Chyba nie.
Cytat
w jaki sposób posortować to w bazie danych aby można było wyświetlić w kolejności alfabetycznej rozwinięte drzewo w formie listy?
Drzewko typu NestedSet ma to do siebie, że nie da się go sortować na poziomie bazy, ponieważ z tej trzeba wyciągnąć posortowane wg lewego klucza. Dane mogą być posortowane w bazie jedynie poprzez modyfikację lewych i prawych kluczy dla każdego elementu.

Innymi słowy: sortowanie najczęściej wykonuje się na już odpowiednio zbudowanym drzewie.
Cytat
id | lft |rgt | parent | namePL |nameEN
Już chyba napisałem, że tłumaczenia powinny być w osobnej tabeli.
Cytat
jak powinno wyglądać zapytanie aby wyświetlić poprawny alfabetyczny widok dla kolumny nazwaPL oraz nazwaEN. np:
Jeżeli to drzewko pobierasz sobie w normalnej formie (tj. hierarchicznej) to jego posortowanie ogranicza się do rekursywnego (ponieważ jest to tablica/obiekt wielowymiarowy) posortowania każdej z gałęzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.