Sprache in einer Datenbank verwalten

Kategorien: PHP & MySQL
7 Antworten
cschaetzle
cschaetzle am Donnerstag, 6. April 2006 um 16:37
Hallo Ich bin gerade an einem Projekt, dass ich mehr sprachig machen werde. Jetzt hab ich mir schon mal eine Tabelle für die Sprache aufgebaut, die aber zu umständlich ist. Habt ihr einen Vorschlag oder wie würdet ihr die Tabelle aufbauen oder würdet ihr die Sprache überhaupt in eine Mysql Datenbank oder in eine Textdatei machen würdet. Ich bevorzuge Mysql, allerdings müsste ich dann die sprache auf mehrere tabellen verteilen.

Kommentare

unkie
unkie am Donnerstag, 6. April 2006 um 16:54

ich würde dir eine Textdatei empfehlen! sind weniger queries ;) ist glaube ich auch einfacher!

bzw. warum auf mehrer tabellen? mach doch "| variable | value | language |"

Chefkoch
Chefkoch am Donnerstag, 6. April 2006 um 19:07

ich persönlich arbeite lieber mit mysql. spontan hätte ich gesagt, das du die tabelle folgendermaßen aufbauen solltest:
"| id | ueberschrift | text(sprache1) | text(sprache2) |"

über die url gibst du dann an, welche sprache er jetzt auslesen soll .....

cschaetzle
cschaetzle am Donnerstag, 6. April 2006 um 20:51

Oh. Meins ist viel komplizierter.

Ich nehme CoPs Variante, die ist glaube ich leichter. Beide sind zwar leicht zu machen.

Danke für die hilfe

unkie
unkie am Donnerstag, 6. April 2006 um 21:18

bei meiner musst du nicht für jede sprache ne neue zeile machen, wird dafür aber mehr platzt brauchen bei vielen sprachen

invisible.kid
invisible.kid am Donnerstag, 6. April 2006 um 22:27

Anstatt von "language" würd ich noch ne ID machen... und ne seperate Tabelle für alle vorhandenen Sprachen anlegen. :)

blackfeet
blackfeet am Freitag, 7. April 2006 um 13:54

Ich würde das mit einer Datenbank machen, da Textdatein umständlich zum handhaben sind. Außerdem wenn viele Benutzer zugleich drauf zugreifen, könnte die Perfomance ziemlich darunter leiden.

Die Tabellen sind eigentlich ganz logisch aufzubauen.

|sprache|kuerzel|text|

Sprache und kuerzel zusammen sind dann der Primärschlüssel.
Damit du die Sprache nicht immer mitherum schicken musst, würde ich die sprache in der Datenbank speichern. Als sprache würde ich aber nur einen Zahlenwert oder ein kürzel wie "de", "en" empfehlen.

Um nicht immer unnötig viele Query's zu machen, würde ich die einzelnen Einträge noch gruppieren. Also die Tabelle noch um eine Spalte erweitern. Sinnvolle Gruppierungen wären zum Beispiel Module oder Seiten. Je nach dem wie deine Seite aufgebaut ist. Danach würde ich jeweils am anfang alle Wörter/Texte einer Gruppe (Modul oder was auch immer) in ein Array laden.
So kannst du dann sehr schnell und bequem immer auf deine Übersetzungen zugreifen.

Diese Methode ist, schnell, leicht erweiterbar und auch sehr einfach zum programmieren und handhaben. Der einzige villeicht zu erwähnende Nachteil ist das relativ viel im RAM des Servers gelagert wird. Allerdings ist das auch nur bei vielen gleichzeitigen Zugriffen der Fall.
Ein Server mit ein paar mb RAM spür das gar nicht. Außerdem glaube ich würde bei der Textdatein Methode auch immer die ganze in den Ram geladen werden.

cschaetzle
cschaetzle am Samstag, 8. April 2006 um 17:54

Deine Methode ist meiner meinung noch besser als die oberen.
Ich mache einen Webmaster Service (www.webmaster-service.eu)

Ram hat er 1024 MB das denke ich auch reicht.

Vielen Dank