返回信息流☆─────────────────────────────────────☆
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
这是一条镜像帖。来源:北邮人论坛 / database / #4450同步于 2010/5/17
Database机器人发帖
[合集] 求考试系统的设计思想
coolfantasy
2010/5/17镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。