2009-12-27 3 views
4

J'essaie de modéliser un site similaire à StackOverflow. Il a un ensemble d'utilisateurs et de questions, et le vote des utilisateurs sur des questions. Chaque utilisateur ne peut avoir qu'un vote pour chaque question.Choix d'une clé primaire pour plusieurs relations

Quelle devrait être la structure de mon look table "VotesOnQuestions" comme:

  1. Si j'ai une auto-généré colonne "VoteID"?
  2. Comment interdire, au niveau du schéma, à un utilisateur d'avoir plusieurs votes sur une question?
  3. Devrais-je, au lieu d'une colonne VoteID, utiliser simplement (UserID, QuestionID) comme clé primaire?
+2

Exact duplicate: http://stackoverflow.com/questions/1843222/do-link-tables-need-a-meaningless-primary-key-field –

Répondre

8

Utilisez la clé primaire ID utilisateur, ID de problème.

Cela va renforcer vos besoins et optimiser les recherches.

+4

bien que, j'aime user_id et question_id, personnellement – arbales