Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Multilanguage database
Forum PHP.pl > Forum > Przedszkole
nansss93
Witam,

Mam pewien problem z wymyśleniem struktury bazy danych.
Mianowicie piszę stronę, która będzie w 4 językach. Na ten moment na jeden język mam taką tabelę z podstronami:


  1. CREATE TABLE `page` (
  2. `pag_id` int(11) NOT NULL,
  3. `pag_name` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  4. `pag_content` text COLLATE utf8_polish_ci NOT NULL,
  5. `pag_alias` varchar(255) COLLATE utf8_polish_ci NOT NULL,
  6. `pag_position` int(11) NOT NULL
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


Pytanie brzmi czy dodawać pola, które chcę tłumaczyć: pag_name_pl, pag_name_en, pag_content_pl, pag_content_en? Czy rozwiązać to jakoś inaczej.
Dodam, też że to nie będzie jedyna tabela, z której dane potrzebuje w tych 4 językach.

Z góry dzięki za rady.
nospor
Dodajesz pole na LANG i wiesz jakiego jezyka dotyczy dana tresc
nansss93
Czyli rekordy będą wyglądały mniej więcej tak:

pag_id|pag_name|pag_content|pag_lang|pag_alias|pag_position
1|Nazwa|Treść|PL|nazwa|1
2|Name|Content|EN|name|1
itd, dla każdego języka i każdej podstrony?

Trochę to redundantne będzie happy.gif
nospor
Gdzie tu masz redundancje? Z rekordow co pokazales to tylko pozycja sie powtarza
nansss93
A ma to sens, żeby powtarzać praktycznie ten sam rekord?

Przypuśćmy, że będę miał 100 podstron i 20 języków, i już mamy 2000 rekordów.
nospor
To albo chcesz miec kazdy rekord w innym jezyku albo nie... sie zdecyduj.

A jesli tabela zawiera wiele danych, ktore sie powtarzaja dla roznych jezykow, to rozbij te tabele na dwie tabela: TABELA ZE STALYMI DANYMi, TABELA Z TRESCIA W ROZNYCH JEZYKACH.
Wowczas dla roznych jezykow wypelniasz tylkoo druga tabele
nansss93
Ok. Tego potrzebowałem smile.gif
Dzięki za podpowiedź smile.gif
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.