创建多项选择测验数据库

时间:2017-06-21 11:17:52

标签: database database-design

我想知道我的数据库设置是否足以进行多项选择测验。如果有更好的方法来解决这个问题,请告诉我。

  • 它有三种类型的测试(文书,数字,口头)。
  • 用户必须回答所有三项测试和得分 每个都存储
  • 我在tbl_answer中存储选项和正确的答案 我可以在应用程序中检索和输出

tbl_user(ID,name,clerical_score,numerical_score,verbal_score)

tbl_quiz(身份证,文书,数字,口头)

tbl_question(ID,FK:quiz_ID,问题)

tbl_answer(ID,FK:question_ID,choice_1,choice_2,choice_3,choice_4,correct_answer)

3 个答案:

答案 0 :(得分:0)

根据您的架构,tbl_question-tbl_answer之间的关系将是一对一的。因此,最好将两个表组合成一个: tbl_question (ID,FK:quiz_ID,questionn,choice_1,choice_2,choice_3,choice_4,correct_answer)

答案 1 :(得分:0)

  

根据您的情况,我建议: -

     

USER_TABLE(USER_ID(primary_key),USER_NAME,clerical_score,   numeric_score,verbal_score,total_score);

     

clerical_table(c_question_id,(primary_key),c_questions,c_option1,   c_option2,c_option3,c_option4,marks);

     

numerical_table(n_question_id,(primary_key),n_questions,n_option1,   n_option2,n_option3,n_option4,marks);

     

verbal_table(v_question_id,(primary_key),v_questions,v_option1,   v_option2,v_option3,v_option4,marks);

     

- >现在请记住,keep1始终在所有三个表中都正确。    - >因此,当您在显示选项期间从表中获取选项时,请使用" RANDOM"功能,以填补选项甚至改变问题   为每个候选人开始新的seccsion时。    - >为了匹配正确的选项,只需选择候选人选择的网页中的密钥,并将其与表格的option1匹配   为了正确。

答案 2 :(得分:0)

为什么tbl_quiz中的测验类型有三个字段?它期望像tbl_quiz(ID, quiztype_id)之类的东西。

  • tbl_user (id,name)
  • tbl_quiztype (id,description)
  • tbl_quiz (id,fk:quiztype_id)
  • tbl_question (id,fk:quiz_id,question,choice_1,choice_2,choice_3,choice_4,correct_answer_no)
  • tbl_user_result (id,fk:user_id,fk:quiztype_id,points)

而不是后者,您可能还会存储所有答案,而不是汇总结果:

  • tbl_user_answer (id,fk:user_id,fk:question_id,answer_no)

如果你想在将来允许不同数量的答案选择,你可以用

替换tbl_question
  • tbl_question (id,fk:quiz_id,question,correct_answer_no)
  • tbl_answer (id,fk:question_id,answer_no,answertext)