2016-08-10 4 views
0

Wie jetzt habe ich 3 Tabellen. eine Kundentabelle, eine Produkttabelle und eine Warenkorbtabelle. Kundentabelle haben CID als Primärschlüssel. Produkttabelle haben pid als Primärschlüssel.Normalisierung Online Warenkorb Tabelle

jetzt möchte ich Produkte zu Warenkorb Tabelle hinzufügen. Ich möchte auch wissen, welcher Kunde das Produkt hinzufügt.

Wenn ich CID und PID in Cart-Tabelle nehme, während der Kunde mehr als ein Produkt bestellt, dann tritt Redundanz.

Wie kann ich eine Tabelle mit all diesen Informationen erstellen? wer bestellt, welches Produkt und die Menge.

MyTables

Product_Table ( prod_id, Grade, Estate, State, Pkgs, WPKG, Kosten, Beschr, );

Customer_Table ( cust_id, Cname, Company, Adresse, Telefon, E-Mail , Land, City, );

Cart_Table ( Cart_id, prod_id, cust_id, Qty, Totalcost, );

+0

Geben Sie Ihr aktuelles Datenbankschema oder die Abfragen an, mit denen Sie es erstellt haben. –

+0

das sind meine Felder in der Tabelle –

Antwort

0

Um Redundanzen zu vermeiden, sollten Sie eine weitere Tabelle Cart_Positions hinzufügen, die alle bestellten Produkte enthält, während der Einkaufswagen nur die Kunden-ID enthält.

Cart_Table (Cart_id, cust_id, ...);
Cart_Positions_Table (Cart_Positons_id, Cart_id, prod_id, Menge, ...);

(Primärschlüssel in fett, Fremdschlüssel kursiv)

EDIT: Beim Versuch, Redundanzen vermeiden Sie auch über das denken sollen „Totalcost“ Sie bereits haben - dies leicht unter Verwendung berechnet werden die Produktpreise und die Menge. Auf der anderen Seite, wenn Sie Rabatte zulassen, aber nicht in der Reihenfolge speichern (was keine gute Idee ist), wäre die Gesamtkostenspalte notwendig.