Ich arbeite gerade an einem E-Commerce Projekt und bin gerade an dem Punkt, die notwendingen Datenbankeintragungen nach Abschluss der Bestellabwicklung vorzunehmen.
Im Angebot stehen sowohl gewöhnliche Produkte als auch individuelle. Ein gewöhnliches Produkt ist ein simples Produkt mit der Produktnummer, dem Preis und einer gewünschten Menge. Ein individuelles Produkt kann sich bspw. folgendermaßen zusammensetzen: Individuelles Produkt = 20% von Produkt A, 60% von Produkt B und 20% von Produkt C, sozusagen eine Mischung.
Die gewöhnlichen Produkte werden nach folgendem Schema in der Tabelle order_item gespeichert: Produktnummer, Preis, Menge und Auftragsnummer. Dass die individuellen Produkte nicht in dieses Muster passen, sollte einleuchtend sein.
Als Erstes habe ich mir überlegt, die bestehende Tabelle zu modifizieren und notwendige Felder hinzuzufügen, z.B. ist_individuell und parent. Im Falle, dass ist_individuell gesetzt ist, kann mit Hilfe von parent die Mischung zusammengestellt werden. Ein drittes Feld für den Prozentsatz würde das ganze vervollständigen. Nachteil ist, dass die Mischung meist aus mehreren Zeilen bestehen wird und somit einige Felder unnötig mehrfach mit demselben Wert belegt sind.
Ein zweiter Lösungsansatz ist, mit serialize() oder json_encode() zu arbeiten. Das wäre natürlich eine sehr bequeme Methode.
Drittens kam mir in den Sinne, zwei eigene Tabellen für die individuellen Produkte anzulegen. Einmal für die Mischung an sich und einmal für dessen Produkte, aus denen sie sich zusammensetzt. In die Tabelle order_item würde anstatt einer Produktnummer eine Mischungs-Id eingesetzt werden.
Mein Verstand sagt mir, dass der letzte Weg womöglich der Beste ist. Alles in einer Tabelle zusammenzufassen erscheint mir widersinnig. Was meint ihr?
Im Angebot stehen sowohl gewöhnliche Produkte als auch individuelle. Ein gewöhnliches Produkt ist ein simples Produkt mit der Produktnummer, dem Preis und einer gewünschten Menge. Ein individuelles Produkt kann sich bspw. folgendermaßen zusammensetzen: Individuelles Produkt = 20% von Produkt A, 60% von Produkt B und 20% von Produkt C, sozusagen eine Mischung.
Die gewöhnlichen Produkte werden nach folgendem Schema in der Tabelle order_item gespeichert: Produktnummer, Preis, Menge und Auftragsnummer. Dass die individuellen Produkte nicht in dieses Muster passen, sollte einleuchtend sein.
Als Erstes habe ich mir überlegt, die bestehende Tabelle zu modifizieren und notwendige Felder hinzuzufügen, z.B. ist_individuell und parent. Im Falle, dass ist_individuell gesetzt ist, kann mit Hilfe von parent die Mischung zusammengestellt werden. Ein drittes Feld für den Prozentsatz würde das ganze vervollständigen. Nachteil ist, dass die Mischung meist aus mehreren Zeilen bestehen wird und somit einige Felder unnötig mehrfach mit demselben Wert belegt sind.
Ein zweiter Lösungsansatz ist, mit serialize() oder json_encode() zu arbeiten. Das wäre natürlich eine sehr bequeme Methode.
Drittens kam mir in den Sinne, zwei eigene Tabellen für die individuellen Produkte anzulegen. Einmal für die Mischung an sich und einmal für dessen Produkte, aus denen sie sich zusammensetzt. In die Tabelle order_item würde anstatt einer Produktnummer eine Mischungs-Id eingesetzt werden.
Mein Verstand sagt mir, dass der letzte Weg womöglich der Beste ist. Alles in einer Tabelle zusammenzufassen erscheint mir widersinnig. Was meint ihr?

Kommentar