Das Problem bei XML ist, dass du wahrscheinlich das ganze XML in den Speicher laden musst um bestimmte Bereiche auszulesen. Das kann gerade bei größeren Texten viel Speicher fressen und auch zum Platzen bringen (in der Theorie).
Bei einer Datenbank ist es (fast) egal wieviel drinnen steht. Ob 10000 oder nur 5 Datensätze, es bleibt bei einer einfachen Anfrage
Code:
SELECT de FROM sprache WHERE kuerzel='anmeldetext' LIMIT 1;
Und wenn man mehr braucht, kann man ja zusammenfassen.
Code:
SELECT de FROM sprache WHERE ((kuerzel='anmeldetext') OR (kuerzel='loginbutton') OR (kuerzel='benutzername') OR (kuerzel='passwort'));
und schon hast du alles zusammen. Und das mit den 250 Zeichen ist Blödsinn. Ein Varchar kann 255 Zeichen fassen und wir haben ja auch noch Datentypen wie z.B. TEXT oder MEDIUMTEXT. Die MySQL-Referenz zeigt dir alle Möglichkeiten auf.
Ein XML hat den Vorteil, dass man diesen als Datei mitliefern kann und wenn man ein CMS auf mehreren Homepages benutzen möchte, die Datei einfach mitkopiert. Eine Datenbank muß erst erstellt werden. Ein XML kann somit schnell auf vielen Seiten aktualisiert werden indem man die XML-Datei einfach reinkopiert. Und wenn man plötzlich ne Sprache mehr hat, einfach nur die Datei rein. Das ist bei einer Datenbank schwerer (neue Spalte erstellen und dann die Spalte füllen, per DUMP oder Schnittstelle, etc)
Damit die XML-Dateien nicht zu groß werden kann man ja auf mehere XML-Dateien aufteilen.
Code:
standard.de.xml
standard.en.xml
gaestebuch.de.xml
gaestebuch.en.xml
bildergalerie.de.xml
bildergalerie.en.xml
....
Und man lädt nur die XML-Datei die man gerade braucht. Reine Definitionssache.
Im Endeffekt ist es eine Frage wie große dein Projekt ist und was (in dem Falle) schneller geht. Ich persönlich habe meine CMS-Systeme auf vielen vielen Homepages und daher eine XML-Lösung mit mehreren kleinen Dateien. Auch weil ich den Übersetzern dann nur die deutsche Datei geben muß und ich dann eine ausländische Datei zurückbekomme um die ich mich nicht mehr kümmern muß, da XML genaue Vorlagen definiert.
Beispiel einer meiner XML-Dateien:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SPRACHE lang="de">
<VOK id="bildbrowser_titel">Bildbrowser</VOK>
<VOK id="bildbrowser_preview">Vorschau</VOK>
<VOK id="bildbrowser_piclist">Bilderliste</VOK>
<VOK id="bildbrowser_path">Pfad</VOK>
</SPRACHE>