Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tłumaczenie bazy danych
korniks
post 18.10.2012, 22:13:14
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 22.03.2012

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


Witam,

mam pewien problem myślowy. Potrzebuje zrobić wersje językowe w aplikacji i zastanawiam się jak zrobić tłumaczenie danych w bazie. Na początku myślałem aby do bazy zapisywać otagowany tekst np. {pl}polski{/pl}{en}english{/en}, a następnie pobierać go i konwertować na xml. Jednak mam watpliwosc co do wydajności takiego rozwiązania. Praktycznie każdy tekst przed wyswietleniem każdego rekordu będzie trzeba odpowiednio obrobić co wydaje się troche czasochłonne.

Drugi sposób polega na przechowywaniu wszystkich tłumaczeń w jednej tabeli i odnosić się do nich po przez klucz obcy.

  1. producct
  2. ---------------
  3. id int PK
  4. description_id int FK
  5. price decimal



  1. translate
  2. ---------------
  3. id int PK
  4. lang varchar
  5. text varchar


Który z tych sposobów jest lepszy pod względem wydajnośći?
Go to the top of the page
+Quote Post
modern-web
post 18.10.2012, 22:22:53
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Cóż, zdecydowanie bardziej optymalne jest drugie rozwiązanie, ze względu na bezpośrednie pobieranie danych z bazy bez potrzeby przetwarzania. Twój pomysł (2) przypomina działanie paczek językowych w popularnych sklepach internetowych, z tym że zamiast operować na plikach, Ty przerzucasz to wszystko do bazy danych więc na większą skalę jest to bardziej wydajny sposób. Jedynym minusem wg. mnie jest stosunkowo skomplikowana obsługa, bo w końcu łatwiej wpisać coś do pliku i kliknąć "zapisz", niż ładować do bazy za pomocą odpowiedniego oprogramowania pośredniego. Zastanowiłbym się - czy to koniecznie musi być oparte na bazie danych? Kluczowe - stałe elementy systemu ze spokojem możesz wpakować jako paczkę językową, a w niej stałe z odpowiednią zawartością. Dalej tłumaczyć nie będę bo pewnie nie raz miałeś styczność z czymś podobnym smile.gif


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
korniks
post 18.10.2012, 23:35:32
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 22.03.2012

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


Dzięki za odpowiedź. Tekst statyczny jest tłumaczony i przechowywany w plikach jednak niektóre elementy dodawane są z panelu admina. Problem polega na tym, że druga metoda jest dość czasochłonna - wymaga przerobienia wiekszość zapytań ;/. Nie ma chyba jednak nad czym kombinować i lepiej poświęcić trochę wiecej czasu i zrobić to raz a dobrze.

Ten post edytował korniks 18.10.2012, 23:36:01
Go to the top of the page
+Quote Post
thek
post 19.10.2012, 16:05:14
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Może zerknij jak rozwiązano to w Symfony2? Jest tam bundle do tego typu operacji Gedmo/Translatable czy jakoś tak...


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
modern-web
post 19.10.2012, 19:45:36
Post #5





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Thek jak zwykle dobrze prawi, przy okazji i ja dziękuję za informację, być może będę musiał skorzystać z podobnego rozwiązania w najbliższej przyszłości smile.gif


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
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: 14.08.2025 - 04:44