2011-07-15 4 views
0

J'ai un panier et je voulais stocker les informations du panier à ma base de données, mais je n'ai aucune idée de comment le faire car je n'ai aucun moyen de détecter combien d'articles mon client ajouterait à leur panier. Ce que j'ai à l'esprit en ce moment serait d'avoir une clé non-unique en tant qu'ID du panier d'achat. i.e.Comment ajouter des informations à une session de données de panier dans une base de données?

ID/book/price/quantity 
1/harry potter/19.90/1 
1/deadly hollows/49.90/1 

et les deux id 1 sera consitute comme un panier complet. Y aura-t-il un problème avec cette façon de faire?

Répondre

0

Une clé non unique n'est pas une bonne solution.
J'ajouterais une clé auto-incrémentée à la table du panier et l'utiliserais comme une clé unique "réelle". Gardez juste votre identifiant non-unique tel quel, vous pouvez donc l'utiliser comme un OrderID pour voir quelles lignes appartiennent au même ordre.

Comme ceci:

UniqueID/OrderID/book/price/quantity 
1/1/harry potter/19.90/1 
2/1/deadly hollows/49.90/1 
3/2/code complete/25.90/2 
0

Vous devez avoir une clé primaire unique, mais peut couvrir plusieurs colonnes:

Vous pouvez probablement utiliser ID et livre comme clé primaire, puisque chaque panier aura pas 2 copies du même livre, parce que cela ne ferait que mettre à jour la quantité, pas ajouter une nouvelle ligne.

Questions connexes