basti_p: Frage zu Datenbanklayout

Hallo,

ich möchte mein CMS und die enthaltenen Module (News, Termine, Galerie etc.) mehrsprachig ausbauen, d.h., der Nutzer kann die gewünschten Sprachen auswählen und die entsprechenden Eingabemasken werden erzeugt.

Jetzt überlege ich, wie ich die Einträge am besten in die Datenbank schreibe.

Variante 1: Tabelle "news", die Werte für Datum und Anzeigedauer können für alle Sprachen verwendet werden. Dann gibt es, abhängig von den aktivierten Sprachen die Felder "headline_de","headline_en","text_de","text_en"...
Beim Speichern teste ich, ob in der Tabelle "news" die Spalten "headline_de" usw. existieren, wenn nicht, werden sie erzeugt und die Daten geschrieben.

Variante 2: Tabelle "news" mit Datumswerten, Tabelle "news_content" in die pro Eintrag und Sprache eine Zeile eingefügt wird - mit der entsprechenden id und Sprachkürzel.

Bis jetzt tendiere ich zu Variante 1 - weil es nur eine Tabelle ist und ich mir JOIN's bei der Abfrage sparen kann.

Was meint ihr?

Danke und Grüße Basti

  1. Yerf!

    Bis jetzt tendiere ich zu Variante 1 - weil es nur eine Tabelle ist und ich mir JOIN's bei der Abfrage sparen kann.

    Was meint ihr?

    Variante 2 natürlich. JOINs sind das täglich Brot der Datenbanken im Gegensatz zu einem ALTER TABLE um eine neue Sprache hinzuzufügen...

    Außerdem müsstest du dann bei der Abfrage den Spaltennamen Variabel halten, je nachdem welche Sprache gewünscht wird (brrr...). Für sowas gibts die WHERE-Klausel.

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. Hallo,

      hab ich mir eigentlich gedacht:-)

      Danke und Grüße Basti