Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Struktura tabel w systemach wielojęzycznych
camikazee
post 5.10.2011, 14:14:55
Post #1





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 17.04.2006
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Witam!

Zastanawiam się jaki jest najbardziej optymalny sposób na napisanie aplikacji wielojęzycznej. Zakładam, że jest możliwość zmiany ilości języków (dodawanie i usuwanie).
Przykład 1
Mamy tabelę treści składającą się z pól id, language_id, title, content oraz link do nich prowadzący tresc(numerid).html
Czy lepszym rozwiązaniem jest do każdej wersji językowej dodawanie danej treści i tworzenie nowego linka, czy zrobić treść główną i dodatkową tabelę pobierającą języki np id, trescid, title, content i rozszerzającą poniekąd tabelę podstawową.

Przykład 2
Sonda. Sonda składająca się z trzech tabel: sondy, pól sondy oraz odpowiedzi. Jak tu rozwiązać wielojęzykowość, czy dla każdego języka tworzyć osobną sondę, czy jeden język podstawowy.

Na chwilę obecną mam zamysł taki, że jest klasa, która pobiera np daną treść i klasa ją rozszerzająca, która w przypadku wykrycia innego języka niż domyślny łączy się z tabelą z danym językiem i nadpisuje tylko wybrane pola (tytuł, treść). Plusem jest fakt, że nie ma np trzech różnych id dla trzech języków, tylko jeden wspólny i w sposób prosty możemy w przypadku braku tłumaczenia dla danego języka wyświetlić treść w języku domyślnym.

W powyższych przykładach bardzo uprościłem strukturę bazy by było to zrozumiałe. Mam nadzieję, że za bardzo nie zakręciłem.
Interesuje mnie opinia czy to jest poprawne rozumowanie i jakich sposobów na wielojęzyczność używacie w swoich projektach.


--------------------
www.fachoweuslugi.pl | www.zlec-usluge.pl | www.pokazsie.pl
Go to the top of the page
+Quote Post
phpion
post 6.10.2011, 07:52:45
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja stosuję taki układ tabel:

locales [id, name...]
objects [id, is_active...]
object_i18ns [object_id, locale_id, title, content...]

Legenda:
klucz główny
klucz obcy
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 21:47