2010-09-21 5 views
0

J'ai une idée de la façon de résoudre ce problème, mais je me demandais quelle était la meilleure façon d'y parvenir.Optimisation Table de Relation SuperKey

Donc, une question peut avoir plusieurs réponses Questions et réponses peuvent avoir des points Un utilisateur est autorisé à donner des points par question/réponse

Question: 
    id 
    title 

Answer: 
    id 
    question_id 
    response 

Points: 
    id 
    user_id 
    question_id 
    answer_id 
    points 

Comme vous pouvez le voir le problème est la table des points avec question_id et answer_id. Maintenant je pense que je pourrais résoudre ceci en ayant la table de Points_Question et la table de Points_Answer, alors je pourrais joindre les tables pour total_points. Est-ce la meilleure solution?

+0

Les utilisateurs donnent des points aux paires question/réponse, mais les questions ne proviennent pas des utilisateurs et les réponses ne proviennent pas des utilisateurs. Est-ce correct? –

Répondre

0

Vous n'avez pas besoin d'ajouter questionid dans la table de points car la question peut être accédée via answerid dans la table de réponses.

+0

Non, mais une question peut avoir des points aussi. – Atherion

+0

donc vous voulez dire dans la table de points soit vous avez answerid ou questionid avec d'autres champs. si tel est le cas alors voir ce lien http://stackoverflow.com/questions/3407951/best-way-to-design-this-database-scenerio je préférerais la solution proposée par martin. Vous devez créer deux tables de jonction answer_points et quetion_points. – Tassadaque