Hallo,
ich stehe vor einer Entscheidung und weiß nun nicht, was sinnvoller wäre. Folgende Situation:
Ein Artikel hat mehrere Varianten. Die Varianten-Arten stehen in einer gesonderten Tabelle. Jeder Artikel kann keine, eine oder mehrere Varianten-Arten haben.
Nun habe ich die Möglichkeit, die Varianten des Artikels in einer Zwischentabelle zu speichern oder aber in der Artikeltabelle als ein (serialisiertes) Array in einem Textfeld.
Z. B.
- habe ich den Artikel mit der ID 7
- 3 mögliche Varianten mit den IDs 1, 2 und 3
- und folgende Kombination:
Artikel 7 hat für die Variante 1 den Wert "rot"
Artikel 7 hat für die Variante 2 den Wert "XL"
Artikel 7 hat für die Variante 3 den Wert "langarm"
Beispiel Zwischentabelle:
tbl_artikel:
id, name
tbl_varianten:
id, name
tbl_artikelvarianten:
id, artikel_id, varianten_id, wert
Inhalt von tbl_artikelvarianten:
(1, 7, 1, rot)
(1, 7, 2, xl)
(1, 7, 3, langarm)
Beispiel Textfeld in der Artikeltabelle:
tbl_artikel:
id, name, varianten
tbl_varianten:
id, name
Inhalt von tbl_artikel:
(7, shirtX, 1:rot;2:xl;3:langarm)
Im Prinzip lässt sich alles mit gleichem Aufwand lösen. Die Unterschiede bzw. Nachteile liegen meines Erachtens nach in folgenden Punkten:
- Bei der Zwischentabelle sind für alle Aktionen mehr DB-Abfragen notwendig.
- Bei der Lösung mit dem Array im Textfeld wird hingegen mehr Speicherplatz benötigt.
Welche Lösung ist (warum) sinnvoller, wenn sich nicht vorher sagen lässt, wie viel Prozent der Artikel überhaupt Varianten besitzen werden, wie viele Varianten es geben wird und in welchem Umfang sie genutzt werden. Kann man das "universell" beantworten, gibt es irgendwelche Richtwerte oder ist das in solchen Fällen "Geschmackssache"?
pb
ich stehe vor einer Entscheidung und weiß nun nicht, was sinnvoller wäre. Folgende Situation:
Ein Artikel hat mehrere Varianten. Die Varianten-Arten stehen in einer gesonderten Tabelle. Jeder Artikel kann keine, eine oder mehrere Varianten-Arten haben.
Nun habe ich die Möglichkeit, die Varianten des Artikels in einer Zwischentabelle zu speichern oder aber in der Artikeltabelle als ein (serialisiertes) Array in einem Textfeld.
Z. B.
- habe ich den Artikel mit der ID 7
- 3 mögliche Varianten mit den IDs 1, 2 und 3
- und folgende Kombination:
Artikel 7 hat für die Variante 1 den Wert "rot"
Artikel 7 hat für die Variante 2 den Wert "XL"
Artikel 7 hat für die Variante 3 den Wert "langarm"
Beispiel Zwischentabelle:
tbl_artikel:
id, name
tbl_varianten:
id, name
tbl_artikelvarianten:
id, artikel_id, varianten_id, wert
Inhalt von tbl_artikelvarianten:
(1, 7, 1, rot)
(1, 7, 2, xl)
(1, 7, 3, langarm)
Beispiel Textfeld in der Artikeltabelle:
tbl_artikel:
id, name, varianten
tbl_varianten:
id, name
Inhalt von tbl_artikel:
(7, shirtX, 1:rot;2:xl;3:langarm)
Im Prinzip lässt sich alles mit gleichem Aufwand lösen. Die Unterschiede bzw. Nachteile liegen meines Erachtens nach in folgenden Punkten:
- Bei der Zwischentabelle sind für alle Aktionen mehr DB-Abfragen notwendig.
- Bei der Lösung mit dem Array im Textfeld wird hingegen mehr Speicherplatz benötigt.
Welche Lösung ist (warum) sinnvoller, wenn sich nicht vorher sagen lässt, wie viel Prozent der Artikel überhaupt Varianten besitzen werden, wie viele Varianten es geben wird und in welchem Umfang sie genutzt werden. Kann man das "universell" beantworten, gibt es irgendwelche Richtwerte oder ist das in solchen Fällen "Geschmackssache"?
pb
Kommentar