Philipp Hasenfratz: zum DB-Schema

Beitrag lesen

Halihallo

könnte man nicht die Spalte CartItemID aus der Tabelle CartItem entfernen und dafür CartID und ProductID zum PrimaryKey machen? Dann könnte man sich diese Spalte sparen. Oder übersehe ich da etwas?

Wenn man nicht verschiedene "Bestellungen" des selben Produktes machen kann, dann ja.
Es mach vielleicht irgendwann Sinn folgendes zuzulassen:

CartItemID=5
CartID=2
ProductID=5
Amount=10
DeliverAddress=26

CartItemID=6
CartID=2
ProductID=5
Amount=15
DeliverAddress=27

vielleicht will der Kunde zweimal das selbe Produkt bestellen, aber verschiedene Empfänger-Adressen angeben (einmal für sich zu Hause und für's Geschäft). Dann geht's nicht ohne CartItemID. Aber dieser Fall (bzw. ähnliche Fälle) ist sehr, sehr unwahrscheinlich.
Dies nur als Beispiel.
Grundsätzlich hast du recht. Für die meisten Anwendungen geht dies ohne weiteres (zwei Columns als Primary Key).

Diese Frage muss man sich stellen, um zu entscheiden, ob CartItemID nötig ist, oder nur einen Primary über zwei Spalten:

Soll der Kunde zwei Bestellungen des selben Artikels in den Warenkorb legen können, oder soll beim erneuten bestellen des selben Artikels einfach der Amount erhöhen?

Viele Grüsse

Philipp