大家过来看看这个数据库该怎么设计?

shipatrioc 2002-05-22 06:10:58
我要模拟的是一个老师出题的问题。
数据库里要存放试题的所有信息。
具体规则如下:
1。题有可能是选择题,也可能是填空题。
2。选择题的选项个数不定,最多的有100个,最少的有两个。
请大家给一个合理的设计方案/
...全文
82 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
henren 2002-05-29
  • 打赏
  • 举报
回复
table1(tm_id,//题目标号,table2,table3的外键
tm_nr,//题目内容
tm_lb//题目类别(选择或填空)
tm_da//题目的标准答案)

table2(tm_id,//题目标号
tm_bh //选项号
tm_xx//选项内容)
//------------------------------
table3(tm_id,//题目标号
tm_bh //答案号
tm_xx//答案内容)
//本人认为table3可以不要。就以上两个表足以解决问题。而且效率也不错。
shipatrioc 2002-05-29
  • 打赏
  • 举报
回复
能不能具体谈谈。我的方法也不是太好。各个答案的类型不一定一致,将来会有好多磁盘浪费,处理起来也麻烦。我的方法已经被经理打入地狱。他的设计方案是有多少题就动态生成多少字段。有多少套试卷就动态生成多少这样的一批表。这样下来,对于有多个答案的表处理起来就有点麻烦。
有兴趣的朋友可以谈谈你们的想法,我可以另开贴子给分。
shipatrioc 2002-05-24
  • 打赏
  • 举报
回复
每个选项内容都不一样,但大部分选项个数不是太多。这样会造成大量磁盘空间的浪费。每个字段用分隔符分开,处理起来既复杂又好时,设想老师有点变态,该题开始是四个选项,他要变成三个选项。处理起来将是很困难的。
这其实是一个简单的一对多的关系,这样设计应该是很合理的,我还是书看的太少。
table1(tm_id,//题目标号,table2,table3的外键
tm_nr,//题目内容
tm_lb//题目类别(选择或填空)
tm_da//题目的标准答案)

table2(tm_id,//题目标号
tm_bh //选项号
tm_xx//选项内容 )

table3(tm_id,//题目标号
tm_bh //答案号
tm_xx//答案内容 )


tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
ok . I am about to design the database as it:

table question( question_id // id of question
question_title // title of question
question_mark // mark of question
qusetion_demo // demo of question
question_type // type of question )

table select_item( select_id // id of select
question_id // id of question
select_order // order of select in one quesiton
select_title // title of select in one question
selected // if selected)

table fill_item(fill_id // id of fill
question_id // id of question
fill_title // title of question
fill_text // the text will filled
fill_mark // the mark of fill in one question)

table ............

this is first plan. you can test it just now.
bzszp 2002-05-23
  • 打赏
  • 举报
回复
答案放在一个字段里就可以了,每个答案中间用表示符隔开就可以了
table3这样就行了
table3(tm_id,//题目标号
tm_xx//答案内容 )
shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
不定
tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
and how many kinds of question in one item.
tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
max
tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
can you tell how many answers in one mutli-answer question and

how many kind all the type of request. ? only choice.
shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
不定
tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
can you tell me how many answer on one multi-answer question
shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
这样设计怎样?
shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
table1(tm_id,//题目标号,table2,table3的外键
tm_nr,//题目内容
tm_lb//题目类别(选择或填空)
tm_da//题目的标准答案)

table2(tm_id,//题目标号
tm_bh //选项号
tm_xx//选项内容 )

table3(tm_id,//题目标号
tm_bh //答案号
tm_xx//答案内容 )

shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
To tomcat1022(刘勇)
既有one answar 又有 multiAnswer
To yanyanEM(井井井)
这样设计有一定道理,我先考虑一下。看楼下有没有更好的解决方案
tomcat1022 2002-05-23
  • 打赏
  • 举报
回复
I want know that these request have only one answar or multiAnswer
yanyanem 2002-05-23
  • 打赏
  • 举报
回复
我提一些关于需求的问题。

1。填空题不一定只有一个空,对吗?
如:今天是几号,星期几。

2。选择题一定会有多选。我想是的。

>>另外,如果题目的答案不只一个,又要把标准答案分出一个表来。
我认为只要在题目选项表中加个字段用来表明是否是答案。


题目1 选择1 是
题目1 选择2 否
题目1 选择2 否

这样不用多个表。

另外我建议你可以适当用些戎余用来减少你的表的个数,
但是多建view可以解决你查询的麻烦。




shipatrioc 2002-05-23
  • 打赏
  • 举报
回复
我开始也是这样想的,但数据戎余太大,各位想想有没有其它好的办法。另外,如果题目的答案不只一个,又要把标准答案分出一个表来。表的性质和
table2差不多。
table3(tm_id,//题目标号
tm_xx//答案内容 )
这样设计合理吗?
我是第一次做这工作,请各为大虾指点
lws0472 2002-05-23
  • 打赏
  • 举报
回复
题目类型表
table1 (tm_id ,//题目类型标志例如1,2...
tm_name//题目类型名称如选择题,添空题)
tm_id 作为此表的主键
题目记录表
table2(seq_no, //序号,作为主键
tm_id,题目类型标志
tm_context,题目内容
tm_fen //题目分数)
bzszp 2002-05-23
  • 打赏
  • 举报
回复
table1(tm_id,//题目标号
tm_nr,//题目内容
tm_lb//题目类别(选择或填空)
tm_da//题目的标准答案)
table2(tm_id,//题目标号
tm_xx//选项内容 )
blankbox 2002-05-23
  • 打赏
  • 举报
回复
同意楼上的,
加载更多回复(6)

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧