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