MySQL Datenbank Aufbau - mehrsprachiger Produktkatalog

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL Datenbank Aufbau - mehrsprachiger Produktkatalog

    Nachdem ich mich mit den Shopsystemen rumgeärgert und festgestellt habe, dass die für meinen Zweck zu viele Funktionen haben und der Aufwand zu groß wäre, will ich mir das Skript selbst schreiben.

    Es geht um einen Produktkatalog (Shop, in dem man nichts kaufen kann), der mehrsprachig ist und auf einer Webseite per PHP eingebunden werden soll.
    Es gibt mehrere Firmen, also Kataloge, mit Kategorien und Unterkategorien. Auf der Kategorieseite gibt es dann eine Übersicht über alle Produkte der Kategorie mit Miniaturbild, Überschrift und evtl. Preis.
    Dann kann man darauf klicken und erhält die Detailseite, auf der es wieder die Überschrift, ein Bild, den Preis und genauere Informationen gibt.

    Ich dachte mir für jede Firma eine Tabelle zu erstellen und dann darin die Spalten, das kommt mir aber etwas unübersichtlich vor und entspricht wohl auch nicht den Normalisierungen.

    id, category, headline_de, headline_en, headline_ru, description_de, description_en, description_ru, additional_de, additional_en, additional_ru, image

    Oder sollte ich für jede Sprache eine Tabelle erstellen und eine für die Bilder, die dann mit den anderen verknüpft wird?
    id, category, headline, description, additional

    Ich weiß, category könnte man nochmal mit id "auslagern"

    Außerdem muss ich noch für die Kategorieseite die passenden Artikel auslesen.
    Per $_GET['cat'] Kategorie übergen und dann
    SELECT * FROM firma1 WHERE category = $_GET['cat']

    Da hätte ich aber ein Problem mit den Unterkategorien, wie soll ich die dann in der DB speichern?
    Zuletzt geändert von einermeiner; 22.07.2011, 19:15.

  • #2
    Das würde aber auch nicht der Normalform entsprechen.

    Halte dir stets vor Augen: "Gleiche Daten gehören in die gleiche Tabelle".
    Das würde bei dir bedeuten, dass für die Sprachen zwei, bzw. drei Tabellen benötigt werden welche dann jeweils in einer n:m - Beziehung zueinander stehen. Nur so kannst du dir grössere Umbauarbeiten bei Änderungen am System ersparen und kannst die Seite auch einfacher weiter entwickeln.

    Als Beispiel:

    Sprache > ID, Sprache (1, Deutsch / 2, Englisch / 3, Russisch / .....)
    Ort > ID, Ort (1, Kopfzeile / 2, Fusszeile / 3, Beschreibung / .....)
    Sprach_Ausgabe > ID, Sprache_ID, Text, Ort_ID (1, 1, text kopfzeile, 1 / ....)


    So kannst du sowohl Sprachen als auch Inhalte immer wieder aktuallisieren ohne dabei auch das Tabellendesign anpacken zu müssen.

    Kommentar

    Lädt...
    X