我在设计一个考试系统的时候,遇到这样一个头疼的问题:
题目包括单选,复选,问答,听力,填空,判断
单选,复选,听力,要有选项(个数不定),可以可以自动判定答案正确与否
判断,没有选项,也要可以可以自动判定答案正确与否.
填空,问答,没有选项,人工判定.如果把题目设计为
create table question
(
题干,选项,参考答案,类型
)如果这样,有以下问题:
"选项"字段就很可能有很多null值;
把多个选项填在一个"选项"字段里,每次取出都要进行解析,并且如果要求考试时选项可以随机打乱,那么参考答案对应哪个选项实现起来很别扭请问有没有比较好的实现方案
题目包括单选,复选,问答,听力,填空,判断
单选,复选,听力,要有选项(个数不定),可以可以自动判定答案正确与否
判断,没有选项,也要可以可以自动判定答案正确与否.
填空,问答,没有选项,人工判定.如果把题目设计为
create table question
(
题干,选项,参考答案,类型
)如果这样,有以下问题:
"选项"字段就很可能有很多null值;
把多个选项填在一个"选项"字段里,每次取出都要进行解析,并且如果要求考试时选项可以随机打乱,那么参考答案对应哪个选项实现起来很别扭请问有没有比较好的实现方案
解决方案 »
- linux下C语言开发oracle的问题。
- 一串数字,如何取后4位不为 6 8 9 的字符串,请支个招,谢谢
- 一个老问题,俺再来问一下,关于在java中取出oracle函数返回值的问题,其返回值为一个数组
- Relational Algebra(关连式代数),高手请进
- 超难sql升级版本!!!
- oracle 用group by 按日期统计 为什么只有一组数据
- 用Erwin建模时表空间该如何建?
- 帮忙看看SQL语句出错.急!!!!
- ORACLE配置的问题(在线等待!!!)
- 向数据库发展的迷惑,请高手们解答,500分以上等待满意答案!!!
- 多行变多列问题,(并非多行变一列,稍微有点不同)求高手,急。
- 询问一条sum查询相关查询语句,急
create table question(
subject varchar2(2000) not null,--题干 1.小于100大于3的偶数?
options varchar2(1000) ,--选项 A.1,B.6,C.8,D.10
answer varchar2(50),--参考答案 B,C,D
subject_type char(1) not null--类型 1 1-单选/2-复选/3-听力/4-判断/5-填空/6-问答
);select answer from question where subject_type=1 and substr(subject,1,1)=1
ANSWER
--------------------------------------------------
B,C,D如果放在一张表,那程序逻辑控制就多些读取的时候先读subject_type
比如是多选题 subject_type字段 应该对应2
然后是读多选下的第几道题截取subject的前1位做比较
得出数据库存的答案和传过来的数据比较
我原来就是这样的思路,但是这样一来冗余大,而且在程序实现时要有很多逻辑控制,相当不优雅
to:bzszp
你的方案实现不了主观题啊,主观题有个"参考答案",如果加多一个主观题的表,那么每次查找题目,都得根据它的类别去判断应该联立哪张表,也是相当不方便
主表与副表的设计方案是最佳的方案
http://topic.csdn.net/u/20071125/22/d4d00113-c8b9-4ae1-a625-37d066473d18.html