Produkty
- id INTEGER
- cena INTEGER
Opisy_produktow
- id INTEGER
- id_produktu INTEGER
- id_jezyka INTEGER
- opis TEXT
Jezyki
- id INTEGER
- blank VARCHAR(255)
w polu "blank" tablicy "Jezyki" przetrzyumujemy tekst inforacyjny typu: dla pl. - "brak informacji w jezyku polskim, wybierz inny jezyk", a dla np. ang. - "information in english not availiable, choose different language"
powiedzmy, ze w sesji trzymamy id aktualnie uzywanego jezyka - chce wydobyc z bazy informacje o cenach produktow z opisami w aktualnym jezyku - a jesli takiego opisu dla aktualnego jezyka nie ma - chce dostac informacje "jezyki.blank"
czy takie podejscie do wielojezykowosci ma sens dla duzych projektow?
uprzejmie prosze o propozycje zapytan realizujacych wydobycie informacji o produktach w danym jezyku - ja nie umiem wymyslic zgrabnego rozwiazania tego problemu....
pozdrawiam,
Lukasz
moze nakresle problem troche dokladniej - w pokazanej wyzej strukturze, zalozmy, ze uzywamy jezyka o ID=1, i wyswietlamy informacje o produktach - uzywam takiego zapytania mysql:
SELECT produkty.id, produkty.cena, opisy_produktow.opis FROM produkty, opisy_produktow WHERE opisy_produktow.id_jezyka = 1 AND opisy_produktow.id_produktu = produkty.id
problem pojawia sie, gdy pewien produkt nie ma opisu w rzadanym jezyku (wtedy jest on pomijany na liscie, a wedlug zalozen - powinna byc wyswietlana informacja z tabeli jezyki "brak informacji w jezyku polskim", lub odpowiednio przetlumaczony ten tekst na inne jezyki)
wiadomo wiec, ze zapytanie powinno w FROM zawierac tabele jezyki:
FROM produkty,opisy_produktow, jezyki
oraz, ze SELECT powinien uwzgledniac warunkowosc wartosci kolumny opis:
SELECT produkty.id, produkty.cena, IF(??WARUNEK??, opisy_produktow.opis, jezyki.blank)
skladajac wszystko w calosc otrzymujemy pewien wzor zapytania do dopracowania:
SELECT produkty.id, produkty.cena, IF(??WARUNEK??, opisy_produktow.opis, jezyki.blank) FROM produkty, opisy_produktow, jezyki WHERE opisy_produktow.id_jezyka = 1 AND jezyki.id = 1 AND opisy_produktow.id_produktu = produkty.id
jednak nie umiem wymyslic zgrabnego warunku...
