書(B_ID是PK)乘2點從不同的表中的值,並將結果存儲在一個新表
| B_ID | Name | Unit_Price|
|------+---------+-----------|
| B01 | Math | 25 |
| B02 | Science | 34 |
訂單(O_ID是PK)
| O_ID | Date | Total_Price |
|------+---------+-------------|
| O01 | 12/1/16 | NULL |
| O02 | 20/3/16 | NULL |
訂單Detais(O_ID,B_ID是複合PK,其中兩個ID都是FK到上述表格)
| O_ID | B_ID | Quantity |
|------+------+-----------|
| O01 | B01 | 2 |
| O01 | B02 | 1 |
| O02 | B02 | 5 |
如何通過用計算的結果替換NULL插入計算成Total_Price
(Unit_Price
* Quantity
)。我試過使用CTE解決它,但我不喜歡我需要在添加新記錄(Exp:O03)時再次運行CTE以更新它。
如果您*存儲*一個計算值,您*引入*存儲的,計算的值的機會與原始基礎數據不一致。理想情況下,不要存儲這些值,除非或直到證明按需計算它的性能(如有必要,將邏輯放在視圖中)是不充分的。 *然後*考慮存儲值,但如果可能的話,使用內置的機制來確保數據庫系統自動維護該值,而不必記住重新計算它。 –