Tutorial: Optionen und Attribute in Datenbank
(by Hendrik Koch, 08.2009)
Optionen und Attribute in der Datenbank der modified eCommerce Shopsoftware
Im folgenden wird die Datenbankstruktur von Attributen und Optionen schrittweise an Beispielen erklärt.
Ein Shop verkauft Fernseher, diese gibt es in 2 Gehäusefarben, Silber und Anthrazit. Weiterhin besteht das Angebot eines Vorort-Reparaturservices für eine Wählbare Laufzeit 12 bis 36 Monate.
Optionen und Attribute. Definition[Bearbeiten]
Für die Fernseherbaureihe gibt es die 2 Optionen (options).
1. 24h-Service 2. Gehäusefarbe
Diese Optionen sind gespeichert in der Tabelle products_options.
Wir tragen die Optionen in eine leere modified eCommerce Shopsoftware-Installation ein. In Tabelle products_options liegen nun 2 Einträge.
Nun gibt es zu den Optionen Werte (options_values). Wir haben 6 Optionswerte. 4x Service und 2x Farbe
1. kein Service 2. 12 Monate Service 3. 24 Monate Service 4. 36 Monate Service 5. Anthrazit 6. Silber
Diese Optionswerte sind unabhängig in eine weitere Tabelle eingetragen. Tabelle products_options_values.
Die language_id lautet stets 2 für Deutsch. Dazu später mehr.
Wie erfolgt nun die Zuordnung Optionen – Optionswerte?
Dies geschieht über eine weitere Zuordnungstabelle products_options_values_to_products_options
Die Feldnamen sagen aus wie die Zuordnung erfolgt.
Entsprechend die Einträge in der Zuordnungstabelle.
Wie werden die Optionen und Optionswerte nun den Artikeln zugeordnet? Auch hier erneut eine Zuordnungstabelle. Tabelle products_attributes. Die Zuordnung Optionen-Artikel trägt die Bezeichnung „Attribute“ (attributes). Sie verbindet
- Artikel - Optionen - Optionswerte
Für jede Optionsauswahl die der Kunde treffen darf befindet sich darin ein Eintrag.
Wir haben einen Artikel, einen Fernseher, mit Artikel-ID (products_id) 200. Bei diesem stehen alle Optionen zur Auswahl. Alle 4 Services (kein bis 36 Monate) und zwei Farben. Tabelle products_attributes enthält nun folgende Einträge:
Einen zweiten Fernseher, products_id=201, gibt es nur mit mindestens 24 Monaten Service. Entsprechend reduziert seine Einträge in Tabelle products_attributes
Sprachen[Bearbeiten]
In den Tabellen products_options und products_options_values stehen die Options- bzw. Wertenamen im Klartext. Erinnerung:
Wird das System mehrsprachig konfiguriert, woher entnimmt es die Namensinformation in der jeweiligen Sprache? Antwort: Die Einträge sind stets mehrmals vorhanden. Für jede Sprache ein eigener Eintrag. Bei einem zweisprachigen System, Deutsch und Englisch, sähen die Einträge in den Tabellen so aus.
Daher ist bei verknüpften Datenbankabfragen stets die Bedingung language_id mit anzugeben, da es andernfalls, wenn mehrsprachige Systeme vorliegen, zu mehrdeutigen Abfrageergebnissen käme.