数据库设计

zimu312500 2009-05-03 08:48:04
最近做一个实训,做一个英语的考试系统,在数据库设计上不是很明白,恳请各位高手指点一二,再此谢过!
我之前有2个想法,如下:
1.ExamStatus表中:{考试编号,用户编号,考试类型(如:模拟、真题),考试开始时间,考试结束时间,是否提交}
ExamText表中:{考试编号,用户编号,听力题目编号,听力答案,听力学生答案,阅读题目编号,阅读答案,阅读学生答案......}

2.ExamStatus表中:{考试编号,用户编号,考试类型(如:模拟、真题),考试开始时间,考试结束时间,是否提交}
ExamText表中:{考试编号,用户编号,题目类型(如:听力、阅读等),题目编号,参考答案,学生答案}
第二种方法感觉就是对第一种方法ExamText中的拆分,不知那种那个设计上和操作上比较好,可能上面的做法比较烂,请各位高手指点一二,谢!
...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zimu312500 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jerrylyj 的回复:]
都不好,本身设计就有问题,你应该没抽象出er模型,直接就想逻辑设计了。
最好是把er图画出,在得出物理模型。
ExamText表中:{考试编号,用户编号,题目类型(如:听力、阅读等),题目编号,参考答案,学生答案}
这边“题目类型”本身就没有必要了,“题目编号”肯定能得到“题目类型”的。
题目(题目编号、题目、题目答案)、题目类型(类型编号、类型名称)两个实体。。。。
所以,同上,参考答案也没必要放在里面…
[/Quote]
5楼说的好,的却没有很好的抽象出ER模型,直接想了下,就这么做了,谢谢楼上各位!
jerrylyj 2009-05-04
  • 打赏
  • 举报
回复
都不好,本身设计就有问题,你应该没抽象出er模型,直接就想逻辑设计了。
最好是把er图画出,在得出物理模型。
ExamText表中:{考试编号,用户编号,题目类型(如:听力、阅读等),题目编号,参考答案,学生答案}
这边“题目类型”本身就没有必要了,“题目编号”肯定能得到“题目类型”的。
题目(题目编号、题目、题目答案)、题目类型(类型编号、类型名称)两个实体。。。。
所以,同上,参考答案也没必要放在里面。
问题一堆。。。。。
幸运的意外 2009-05-04
  • 打赏
  • 举报
回复
第2中方案好。原因如下:
1.方案2中数据冗余度小,如果数据比较稀疏的时候能节省存储空间。
2.表便于维护。如果题型出现变化,只要维护类型字段就可以。不用给整个表结构带来影响。

另外,百年树人大哥的新方案感觉有损失。
我感觉应该是这样的:{考试编号,用户编号,题目编号,学生答案},{题目编号,题目类型(如:听力、阅读等),参考答案}
zimu312500 2009-05-04
  • 打赏
  • 举报
回复
谢楼上2位!!!
BlueSky4014 2009-05-04
  • 打赏
  • 举报
回复
看看数据库原理,满足第几范式,一般的系统满足第三范式就OK了
百年树人 2009-05-03
  • 打赏
  • 举报
回复
第二种方法好
不过后面那个表还可以细化一下(把考试题目属性和用户答案分开),以减少冗余:

{考试编号,用户编号,学生答案} {题目编号,题目类型(如:听力、阅读等),参考答案}

一品梅 2009-05-03
  • 打赏
  • 举报
回复
当然用二省空间,减少冗余.也不影响性能.

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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