我愿意建立一个小问卷,我只是想知道,数据库结构应该是什么样子......我的意思是我有不同的答案可能性 - 复选框,下拉菜单,输入框等那么问题。我该如何保存调查问卷呢?我应该为每个不同的调查问卷制作一张自己的餐桌吗?行“question_1”,“question_2”等等? 您还有什么其他机会?谢谢你的建议,伙计们! :)
答案 0 :(得分:1)
由于答案的数据类型会有所不同(例如,您可能有一个是/否问题,然后问题是答案是多项选择a,b,c,d)您应该保持简单并做出答案一个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)]
此结构使您能够拥有问题的主列表,为问题的答案创建可能的选择,使用主题列表中的子集根据需要定义问卷,然后跟踪用户在完成问题时提供的答案问卷