Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z tabelami
misiekmisiek1
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 20.03.2008

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


Witam
Mam problem ze stworzeniem struktury bazy danych. Baza ma być zaprojektowana tak aby byla mozliwosc dodawania wielu jezykow (nieogranizona ilość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). Elementy bazy to: dyscyplina(nazwa) -> kraj(nazwa) -> liga(nazwa) -> druzyna(nazwa, opis, adres). Zrobiłem coś takiego:

druzyna
-id
-nazwa
-opis
-adres
-ligaid

liga
-id
-nazwa
-krajid

kraj
-id
-nazwa

kraje
-id
-krajid
-jezykid
-nazwa

jezyk
-id
-nazwa
-skrot

Z tej struktury tylko element kraju wydaje sie być dobrze zapisany. Ma ktoś może pomysł jak zaprojektować bazę dla wszystkich tych elementów? Prosze o odpowiedź, z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nevt
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


z ta nieograniczoną ilością bym nie przesadzał. typowe serwisy obsługują 2, 3 maks. 4 języki...
w takich zastosowaniach stosuję nieco inną konstrukcję (ze względu na prostotę budowy zapytań i uniknięcie zbędnych JOIN'ów).

w każdej tabeli, w której są pola wielojęzyczne, powielam te pola dodając przyrostek tak jak określenie domeny www (pl - polski, uk - angielski, de -niemiecki, itd.)
czyli na przykładzie twojej tabelki:
druzyna
-id
-nazwa
-opis_pl
-opis_uk
-opis_de
-adres_pl
-adres_uk
-adres_de
-ligaid

a potem w kodzie php:
  1. <?php
  2. $lng = 'pl'; // przykładowo
  3. $sql = "SELECT id, nazwa, opis_$lng AS opis, adres_$lng AS adres, ligaid FROM druzy
    na WHERE ..."
    ;
  4. ?>

i wtedy w wynikach odwołuję się do pól 'opis' i 'adres' i mam w nich dane w odpowiednim języku ...

co jest dość istotne w tym rozwiązaniu, obsługa kolejnego języka wymaga tylko dodania odpowiednich pól w bazie danych - kod PHP nie zmienia się...

Ten post edytował nevt 21.03.2008, 08:33:19
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 30.09.2025 - 03:37