关于数据库设计,速度快慢的问题?
比如一个表包括学生的名字和学科成绩,假设学科成绩有20种左右,比如数学,语文等
方案1:一条数据显示
ID 姓名 数学 语文 。。
1 小明 80 90方案2:多条数据显示ID 姓名 学科类别 分数
1 小明 数学 90
2 小明 语文 80
。 。 。 。
。 。 。 。
。 。 。 。
请问这2个方案,在数据项很多了以后哪个速度会快些,比如对某个学生的某个学科成绩的增删改
请高手详细说说啊
比如一个表包括学生的名字和学科成绩,假设学科成绩有20种左右,比如数学,语文等
方案1:一条数据显示
ID 姓名 数学 语文 。。
1 小明 80 90方案2:多条数据显示ID 姓名 学科类别 分数
1 小明 数学 90
2 小明 语文 80
。 。 。 。
。 。 。 。
。 。 。 。
请问这2个方案,在数据项很多了以后哪个速度会快些,比如对某个学生的某个学科成绩的增删改
请高手详细说说啊
方案2表窄,记录多,姓名重复,需要加索引
增删改 操作的速度应该差不多总体应该选择2
第一种适合统计报表,
大多数数据表格设计都选用第二种。。呵呵
逻辑处理,关系型设计,数据冗余,可扩展等很多方面都是需要考虑的。
如报表需要显示成第一种方案,可以通过后台编程或其他方式显示成第一种方案的样式2、至于效率的问题,可通过优化索引和算法的问题解决
3、第一种方案同时存在存储空间的浪费,如小明只选修了语文,其他科目的成绩都存在存储空间的浪费
第2个满足第一范式,范式 越高 在某种角度来说 肯定是 要 效率差与 低级范式
不过有个ID就行了, 不用再记录冗余的姓名字段