Wpis z mikrobloga

Mireczki, jak najlepiej zaprojektować bazę danych do strony ze słówkami, mamy kilka języków.
Mieć jedną tabelę 'Słówka' i tabelę 'Tłumaczenia'
Słówka(id, nazwa)
Tłumaczenie(id, idslowka, idtlumaczenia, jezykzjakiegonajakitlumaczymy)

Czy np dla kazdego języka inna tabela
Angielskie
slowka(id, nazwa)
Niemieckieslowka(id, nazwa)
Polskie
slowka(id, nazwa)
Tlumaczeniepolskoniemieckich(idpolskiego, idniemieckiego)


#programowanie #informatyka #bazydanych #mysql #sql #webdev #php
  • 11
@BlueKygo:
ja to bym zrobil tak ze:

tabela (id, nazwa)
tabelazangielskim (idpierwszejtabeli, tlumaczenie)
tabelazniemieckim (idpierwszejtabeli, tlumaczenie)
itd.
@BlueKygo:
slowkapl(id,string)
slowka
ang(id,string)
tabelka z tlumaczeniami(id,idpl,idang)

do tego robisz klucze na polach po ktorych bedziesz laczyl, wiec tutaj to bedzie id. Rozmiaru tabel bym sie nie bal, przy dobrze zaprojektowanych kluczach, odpowiednich indeksach problemu byc nie powinno. Rozbudowa bazy do innych jezykow przez dodanie tabeli
@BlueKygo:
Jeżeli będzie dużo relacji np 10 języków czyli 45 relacji język <=> język bo nie możemy zrobić relacji przechodnich, słowo przetłumaczone z pl na en na de już powoli traci sens to polecam:

Slowo(id) <= unikalne znaczenie słowa
Tlumaczenie(id, slowoid, jezykid, tekst)

Tylko trzeba by było dużo roboty tłumacza żeby ogarnąć te "unikalne" znaczenia, np angielskie get miało by z 5 odwołań do tabeli Slowo.
W tym pierwszym przypadku te dwie tabele będą mega ogromne, i to mnie niepokoi.


@BlueKygo: Co to znaczy ogromne? Miliardy rekordów? Czy bardziej tysiące?

Stawiam na to, że nie będziesz miał żadnego problemu z wydajnością.