Datenbankdesign: Varianten mit Ausnahmen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbankdesign: Varianten mit Ausnahmen

    Hallo zusammen,

    ich habe ein kleinen logischen Denk-Hänger, wie ich eine Variantenauswahl in meinem eigenen kleinen Shop von dem Tabellenaufbau gestalten soll.

    Es gibt verschiedene Artikel, welche eigene individuelle Varianten haben können.

    Bisher ganz einfach in der Datenbank dargestellt:

    ----------------------------------

    artikel_varianten_eigenschaften
    id
    eigenschaft_name
    artikel_nr

    artikel_varianten_optionen
    id
    eigenschaft_nr
    bezeichnung
    aufpreis

    ----------------------------------

    Die Eigenschaft kann dabei z.B. "Farbe" sein und als Optionen werden der Eigenschaft dann Auswahlwerte wie "Rot", "Gelb" oder "Grün" zugeordnet.


    Soweit, sogut. Ein Artikel kann natürlich mehrere Eigenschaften haben (z.B. Farbe, Größe, Material etc.). Würden nun alle Eigenschafts Optionen immer zusammen passen, würde mein bisheriger Aufbau passen (Wenn also jede Farbe, mit jeder Größe und jedem Material zusammen passt). Nun kann es aber sein, dass beim Material "Holz" auf einmal andere Farben vorhanden sind wie bei "Eisen". Wie stelle ich sowas logisch da? 8| Eine einfache Frage, aber für mich derzeit nicht ganz logisch in der Darstellung.

    Kann mir da jemand bei helfen? Große Shopsysteme müssen die Frage ja schon längst beantwortet und umgesetzt haben, denke ich 8o

    Vielen Dank für eure Hilfe!

    Tobbe5














  • Ich bin mir nicht ganz sicher, ob ich das Problem verstanden habe.
    Du verlinkst deine Artikel mit den Eigenschaften, dann kannst du doch individuell sagen welche Eigenschaften der Artikel haben soll. Da überschneidet sich doch nix?
    Und um mehrere Eigenschaften zu verknüpfen, füg einfach noch ne Spalte eigenschaft_nr (theoretisch könnest du auch die id rauswerfen/auf nicht-auto-increment stellen, dann kannst du die auch verwenden) in die artikel_varianten_eigenschaften - Tabelle ein, dann kannst du im Query über die artikel_varianten_optionen die eigenschaft_nr auslesen und joinst die dann auf die artikel_varianten_eigenschaften. Wenn ich mich nicht komplett verrechnet habe, solltest du dann eindeutige Ergebnisse haben.