+ -
当前位置:首页 → 问答吧 → 今天版主chenfeng给我出的一个题目,欢迎大家一起来锻炼锻炼脑子

今天版主chenfeng给我出的一个题目,欢迎大家一起来锻炼锻炼脑子

时间:2010-09-20

来源:互联网

Feng 说:
就是一个在线考试的表设计
Feng 说:
你怎么设计考题和用户答题
有单选,多选。还需要统计用户答题的趋势,例如,a回答多少,b回答多少
想想吧。前几天有人问我这个。。。
这个比mda那个靠普。。。
  Eisen  说:
……
这个难住我了
我似乎从来没出过考题呢
Feng 说:
仔细想想
这个其实很好玩的
要能够简单统计出那些单选,哪些是多选吧之类的
  Eisen  说:
有什么好玩的?
Feng 说:
这个表结构设计要花心思的。。。
你试试看你会设计出什么样子。。。
  Eisen  说:
这个……
还真想不出来
一点感觉都没有呢
Feng 说:
想想沙。
我要是考官,我就问dba这种问题。。。
  Eisen  说:
还真想不出来
你说说呢?
Feng 说:
不说
。。。
自己想去吧
洗尿布时最合适想这个了
  Eisen  说:
给点提示啦
Feng 说:
题目答案你准备怎么表示?
用户回答的答案呢?
统计怎么做?
数据量怎么样最小化?
  Eisen  说:
是啊
你这么一说,发觉还真是很麻烦的一个事情
Feng 说:
哈哈。我不说了。。。
勾起你的兴趣就好了。。。。

作者: Eisen   发布时间: 2010-09-20

我现在的想法是,设计成两个表,一个是题目答案表
create table Answers
(title int,A boolean,B boolean,C boolean,D boolean)
里面存放考题答案,例如题目1是多选bd,那么就insert Answers values(1,false,true,false,true)
一个是考生答题表
create table Papers
(id  varchar(10),title int,answer varchar(4))
里面存放考生答案,例如考号0000000301答题7选的是cd,那么就insert Papers values('0000000301',7,'cd')
这样可以很快地统计考生答题的趋势,也可以通过动态sql给出考生得分,至于单选多选,可以统计一下题目答案表就行了。
不知道兄弟们有什么指点吗?

作者: Eisen   发布时间: 2010-09-20

这样是不对的,四个选项四个字段,那新增选项怎么处理?

作者: chenfeng825   发布时间: 2010-09-20

那把Answer表改成
create table Answer
(title int,option char(1),value boolean)
这样记录考试答案,
例如,第1题正确答案是bd,那么就
insert Answer values(1,'b',true)
insert Answer values(1,'d',true)
这样行不行?

作者: Eisen   发布时间: 2010-09-20

这样看起来合理多了,如果这样就之需要 1,'a' | 1,'b'就好。true没有意义了

往下:统计考试结果可是有点难搞了。

作者: chenfeng825   发布时间: 2010-09-20

相关阅读 更多

热门下载

更多