2009-04-17 7 views
1

Je pense créer une "wishlist". Chaque utilisateur pourra acheter des souhaits dans un magasin. Comment stocker la liste de souhaits? Je pense à créer une table d'utilisateur et une table de liste de souhaits.Comment stocker "wishlist" dans la base de données?

La structure de la table utilisateur: colonnes: id, nom d'utilisateur, mot de passe, etc

Colonnes: id, souhait, prix, quantité, etc ID utilisateur

est la clé primaire pour la table d'utilisateur et son un étranger clé dans la table de liste de souhaits. Cependant, quand j'y penserai, ma table de liste de souhaits aura des articles en double pour chaque utilisateur, n'est-ce pas?

Y a-t-il une meilleure façon de stocker les choses de la wishlist?

J'utilise mysql. Merci

+0

À bien des égards, cette question n'a pas de réponse concrète. Demandez à 100 analystes un design et obtenez 100 réponses différentes, toutes plus ou moins correctes. En tant qu'architecte de ce système, vous devez décider par vous-même. –

+0

Je veux la méthode la plus sûre et la plus populaire. Je suis nouveau à la base de données, donc je cherche des conseils .. –

+0

la sécurité est seulement vaguement liée à la conception de vos tables. –

Répondre

0

Il s'agit d'une relation de 1 à n.

En supposant que vous avez une table utilisateur avec un user_id comme clé primaire, alors créez une table Wish qui a user_id comme clé étrangère. Ajoutez les attributs que vous voulez à cette deuxième table et à la viole.

Luis

0

Vous devriez avoir une autre table pour souhaits (identifiant de souhaits, prix, description, etc.), et vous devriez avoir une table de jonction (id utilisateur, id souhait, quantité, prix cité, etc.). Cette table vous permettra d'avoir une relation plusieurs-à-plusieurs entre les utilisateurs et les souhaits.

(Suite à mon commentaire ... vous avez deux différentes suggestions déjà.Enfin, vous devez décider ce qui est le mieux, et idéalement vos besoins d'affaires/projet devraient vous guider.)

EDIT: faire que trois différentes suggestions

+0

pouvez-vous être plus précis? Thats signifie que je dois créer 3 tables? Pouvez-vous lister les exemples de noms de colonnes importants pour chacun? –

+0

oui, trois tables. J'ai donné des suggestions de colonnes dans ma réponse. –

4

Vous devez également avoir une autre table pour stocker les achats:

Achats

  • Id
  • UserId
  • WishId
  • purchaseDate

utilisateurs

  • Id
  • Nom
  • Mot de passe

Wishes

  • Id
  • souhaits
  • Prix
  • Quantité

Chaque fois qu'un utilisateur achète un souhait, vous créez un enregistrement dans la table des achats et diminuer le nombre de quantité pour ce souhait.

+0

pouvez-vous être plus précis? Thats signifie que je dois créer 3 tables? Pouvez-vous lister les exemples de noms de colonnes importants pour chacun? –

+0

Oui. Ma réponse est mise à jour pour refléter ceci maintenant. – Nippysaurus

+0

C'est la manière la plus logique de structurer basée sur les spécifications de demandeur de question. Vous voudrez peut-être modifier davantage pour noter que si vous décrémentez la quantité sur chaque achat, vous voudrez augmenter la quantité chaque fois que vous recevez un nouveau stock. – TheTXI

Questions connexes