大家看这个表,其实主科总分,副科总分,总分 都能通过 前面的的数据算出来,
我想问问,要是 不考虑存储空间的情况下,
是把 主科总分,副科总分,总分 在插入数据的时候,就算出来好,还是 用 VIEW 算好?
这个好的意思,是减少服务器负担,还是搜索速度快.
学习是最好的投资!
从第三范式的角度看,主科总分、副科总分、总分这三列属于依赖于其他列的数据,不应该作为单独的列放到数据库表中。
如果考虑数据读取的压力很大,不想在应用服务器或数据库端再做计算,那么可以按照冗余列的方式存储在表中。在上面所说的场景中,学生的成绩录入后修改的次数应该很少,因此冗余列的更新成本较低,属于典型的读多写少的情况,因此有冗余列总体上服务器的压力会比较低。
看你是插入数据多,还是读取结果多;插入数据时多时就把计算放在视图内,读取数据多时就把sql计算结果放在表里,但读取的压力远远低于插入吧,这个比例还是要权衡下,建议选择放在视图内。
从第三范式的角度看,主科总分、副科总分、总分这三列属于依赖于其他列的数据,不应该作为单独的列放到数据库表中。
如果考虑数据读取的压力很大,不想在应用服务器或数据库端再做计算,那么可以按照冗余列的方式存储在表中。在上面所说的场景中,学生的成绩录入后修改的次数应该很少,因此冗余列的更新成本较低,属于典型的读多写少的情况,因此有冗余列总体上服务器的压力会比较低。
看你是插入数据多,还是读取结果多;
插入数据时多时就把计算放在视图内,读取数据多时就把sql计算结果放在表里,但读取的压力远远低于插入吧,这个比例还是要权衡下,建议选择放在视图内。