BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #4450同步于 2010/5/17
Database机器人发帖

[合集] 求考试系统的设计思想

coolfantasy
2010/5/17镜像同步0 回复
☆─────────────────────────────────────☆ wqchen (生猛海鲜) 于 (Mon Apr 26 13:11:20 2010) 提到: 假设有200道考题,只有单选和填空。 有相当多的考生,比如10W。 如果设计考生答案表比较合理? 我想到两种,感觉都不太好: 第一种: 考生ID(PK) 题1 题2 题3 ........... 1 A C D ................................... 第二种: 考生ID(PK) 题目ID(PK) 答案 1 1 A 1 2 C .... 2 1 B 2 2 D 第一种字段太多,且字段是手动输入的,和题目ID表格没有强制关系,容易出错。 第二种由两个字段组合成联合主键,表间的约束有了,但行数骤增,每个考生要存200条数据,考生ID无谓的增加199行。 目前我仿向第二种,请问大家有没有什么好的建议? ☆─────────────────────────────────────☆ coolfantasy (Cool) 于 (Mon Apr 26 13:18:14 2010) 提到: 关系数据库是对关系的描述,而“关系”应该是可以改变的 第一种设计就将考生和考题的关系固定死了,如果考题增加了,要通过修改表结构来维护这个关系,显然不是一个好方法 第二种更合适,200*10W 的数据量也不多,也可以考虑按考生 id 进行表切分 ☆─────────────────────────────────────☆ wqchen (生猛海鲜) 于 (Mon Apr 26 13:30:56 2010) 提到: 【 在 coolfantasy 的大作中提到: 】 : 关系数据库是对关系的描述,而“关系”应该是可以改变的 : 第一种设计就将考生和考题的关系固定死了,如果考题增加了,要通过修改表结构来维护这个关系,显然不是一个好方法 : 第二种更合适,200*10W 的数据量也不多,也可以考虑按考生 id 进行表切分 : ................... 谢谢回答! 我对数据库不怎么懂,请问这个表切分能够加快查询速度吗?比如查第50000个考生的情况?直接建索引能否达到同样效果? ☆─────────────────────────────────────☆ coolfantasy (Cool) 于 (Mon Apr 26 13:35:10 2010) 提到: 一张表 2000w 的数据并不多,做了切分对查询速度的改变也微乎其微 如果你对数据库不太懂,我建议你利用主键进行查询就行了,没必要做太深入的优化 【 在 wqchen (生猛海鲜) 的大作中提到: 】 : 谢谢回答! : 我对数据库不怎么懂,请问这个表切分能够加快查询速度吗?比如查第50000个考生的情况?直接建索引能否达到同样效果? ☆─────────────────────────────────────☆ wqchen (生猛海鲜) 于 (Mon Apr 26 13:41:45 2010) 提到: 谢谢版主的回答 优化就先不考虑了,目前就先用第二方法吧,其实数据量应该差不多是350*30W
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。