小弟设计了一个类似在线考试之类的东东,设计答题时遇到多选题时设计了两个表,虽然能满足需求,始终觉得不是 很符合自然逻辑,不是最佳方案,请求大大指教试题表:Exm_Questions
QuestionID 题目编号,自增长
QustionBody 题干
LibraryID 对应的题库编号
QuestionDate 录入时间
ModeID 题型ID 如填空,选择,问答试题明细表:Exm_QuestionOption
OptionID 题支自增长编号
OptionMark 题支标记 如:选择题的A,B,C,D;填空题的(1),(2),(3)等
OptionText 题支的文字部分
ModeID 题支模式 如选择题选项,填空题的空等
QuestionID 对应题支号目前的需求主要是多选比较麻烦,
1) 多选选项数不确定
2) 选项后可能会还有一个选择”其他”,选择”其他”还需要 填写 “其他”具体内容的空白
如 什么食物减肥 A 冰淇淋 B 水果 C饭 D肉 E其他__________
3) 管理员需要对答题的多选每个选项进行统计,如第x题选了A的xx人,占总人数的xx%.所以我设计的记录答题记录的表试卷明细表Exm_PaperDetails
记录一张试卷的题目
SerialID 自增长号
QuestionID 对应题库里的试题
SectionID 该题目隶属于哪个大题
Sort 顺序答题明细表:Exm_PaperAnswer
RecordID 自增长记录号
SerialID 对应试题号
AnswerOption 试题选择项,如选了A就记录”A”,选了”AB”就插入两条记录分别为”A”,”B”
AnswerText 答题的文字 填空填的空白 选择选了”其他”后写的文字 主观题的答案等
SectionID 对应大题题号
ClientID 对应另外一张记录考试人员的记录号
现在的问题就是 多选时将在Exm_PaperAnser里面记录多个选项时插入了多条记录(用,隔开用一个字段记录无法实现统计),而且OptionText 和 OptionMark 记录答题文字的意义 根据题型的不同而变化,感觉总是不大对劲.
觉得不是最佳方案说了一大堆,不知道有没有讲清楚.请求大大批评这个设计,能指出更好的解决方案更好了.
感激不尽.
还有就是SQL做后台数据库,你应该用一个WINDOWS应用程序来调用数据库,那么你的考试系统将更加完美.
谢谢先~~~~~
还有就是SQL做后台数据库,你应该用一个WINDOWS应用程序来调用数据库,那么你的考试系统将更加完美.
谢谢先~~~~~
如 A 1000, B 0100, C 0010, D 0001, AB 1100等等
每个答案后面都有“其他”选项的填写内容,当有选择“其他”选项时对其进行统计。