2010-10-22 9 views
0

Je suis prêt à construire un petit questionnaire et je me demandais juste, comment la structure de la base de données devrait ressembler ... Je veux dire, j'ai différentes possibilités pour les réponses - cases à cocher, menus déroulants , des boîtes de saisie, etc., comme pour les questions. Et comment dois-je sauvegarder les questionnaires? Devrais-je faire pour chaque questionnaire différent une table propre? Avec les lignes "question_1", "question_2", etc.? Quelles autres possibilités voyez-vous? Merci pour les conseils, les gars! :)structure de base de données MySQL pour un questionnaire

Répondre

1

Comme le type de données des réponses variera (p. Ex. Vous pourriez avoir une question oui/non, puis une question où la réponse est à choix multiples a, b, c, d), vous devriez probablement rester simple et faire de la réponse un varchar.

Questions 
    id integer pk 
question varchar 

QuestionPossibleAnswers 
id int pk 
questionid int foreign key references Questions 
ordinal decimal 
possibleanswer varchar 


Users 
id 
name 



Questionnaire 
id 
name 
description 



QuestionnaireQuestions 
int pk 
questionnaireid foreign key references Questionnaire 
questionid foreign key references Question table 
ordinal  decimal (where in the sequence of questions this one belongs) 
[put unique composite index on (questionnaireid, questionid)] 



QuestionnaireQuestionsAnswers 
id int pk 
QuestionnaireQuestionid foreign key references QuestionnaireQuestions(id) 
userid foreign key references Users 
answer varchar 
[unique composite index on (questionnairequestionid, userid)] 

Cette structure vous donne la possibilité d'avoir la liste principale des questions, créer des choix possibles pour trouver des réponses aux questions, définir des questionnaires au besoin à l'aide d'un sous-ensemble de la liste principale des questions, puis suivre les réponses des utilisateurs fournir lors de la complétion du questionnaire.

Questions connexes