我对测验应用程序的数据库设计感到困惑。请指导我 -
我的应用用户界面将会是这样的 -
我的DB
表格 -
用户 -
user_id
user_name
user_email
user_password
user_registration_date
user_active
问题 -
question_id
question_title
question_category_id
question_level_id
question_author_id
question_status
question_create_date
类别 -
cat_id
cat_name
cat_author
cat_create-date
cat_status
等级 -
level_id
level_name
回答 -
?????????
查询 -
我坚持使用答案表。意思是我不确定在答案表中使用data type
设置哪些列。
我的答案只会在选项格式中表示1,2,3,4选项或选项中没有文字类型答案的真假。只需选择一个选项。
请指导我,因为我坚持这一点。
请在上述表格中表示是否有问题,如果您为Level级别OK
创建了一个单独的表,或者它是一个坏的(Level级将只是 - 初级,中级,高级),请告诉我
答案 0 :(得分:6)
过去当我这样做时,我已经用这种方式处理了答案:
表:QuestionAnswers
字段:ID,QuestionID,AnswerText(字符串),AnswerCorrect(bool)
表:QuestionAnswerResponses
字段:ID,QuestionAnswerID(链接到上面的ID表),Userid,AnswerSelected(bool),TimeAnswered(datetimr)。
答案 1 :(得分:1)
首先,在表中包含的每个字段中重复表的名称是多余的。所以我建议不这样做。唯一可能的例外是主键/自动增量字段,因为有些人发现当两个表都有ID字段时必须键入myTable.id会造成混乱或额外的工作。我不确定为什么myTable.id比myTable_id更有效,但你有它。
我过去使用过的是
表分心者(这是电子教学类型调用问题的可用答案)
ID
question_id(FK到问题表)
文字(该答案在屏幕上显示的文字)
isCorrect
displayOrder
如果您希望重复使用答案的灵活性,那么您需要使用联结表,而不是在distractors表中使用问题ID。但是,由于您想要确定问题的创建日期,您可能希望将答案严格指向一个问题。