Jak podejść do projektowania aplikacji, która ma np. obsługiwać wiele języków?
Baza:
Każdy obsługiwany język swoja ma swoją bazę
-
Zaleta: 1 baza = 1 język, zatem unikamy mieszania wszystkiego razem i pól typu: text_PL, text_ENG, text_DE itd.
-
Zaleta: mniejsze obciążenie na instancje bazy
-
Wada: trzeba się męczyć z synchronizacją np. stałe podpięcie do kilku baz, aby dodając w text_PL od razu dodać przetłumaczony text do bazy w ENG.
-
Wada: trzeba się więcej bawić z backupami.
Wszystko w 1 bazie:
-
Zaleta: tworząc nową treść od razu wypełnialibyśmy wszystkie języki (łatwiej w porównaniu do poprzedniego podejścia)
-
Zaleta: łatwy backup
-
Wada: trochę burdel
Aplikacja:
Instancje czy jakieś redirecty np. na podstawie preferencji w cookie?
np. de.example.com przekierowuje na aplikację pod portem 5200, pl.example.com przekierowuje na 5202 itd.
-
Zaleta: mniejsze obciążenie na instancję
-
Wada: więcej zabawy z konfigurowaniem jakichś reverse proxy, zasobów, może load balancingu itd.
A może jakieś inne, ciekawsze pomysły? lub generalnie jak to u was wygląda :)