大家看这个表,其实主科总分,副科总分,总分 都能通过 前面的的数据算出来,
我想问问,要是 不考虑存储空间的情况下,
是把 主科总分,副科总分,总分 在插入数据的时候,就算出来好,
还是 用 VIEW 算好?
这个好的意思,是减少服务器负担,还是搜索速度快.
伊谢尔伦2017-04-17 14:56:56
從第三範式的角度來看,主科總分、副科總分、總分這三列屬於依賴於其他列的數據,不應該作為單獨的列放到資料庫表中。
如果考慮資料讀取的壓力很大,不想在應用程式伺服器或資料庫端再做計算,那麼可以按照冗餘列的方式儲存在表中。在上面所說的場景中,學生的成績輸入後修改的次數應該很少,因此冗餘列的更新成本較低,屬於典型的讀多寫少的情況,因此有冗餘列總體上服務器的壓力會比較低。
迷茫2017-04-17 14:56:56
看你是插入資料多,還是讀取結果多;
插入資料時多時就把計算放在視圖內,讀取資料多時就把sql計算結果放在表裡,但讀取的壓力遠低於插入吧,這個比例還是要權衡下,建議選擇放在視圖內。