2009-10-04 90 views
0

與大多數人一樣,我致力於數據驅動的面向對象的業務應用程序。我使用關係數據庫來存儲我的數據。計算值

我已經設計了我的應用程序到目前爲止我從不存儲計算值。也就是說,如果用戶想要查閱他去年運行的「模擬」的輸出結果,我的應用程序將僅從現有歷史數據重新計算報告,而不是讀取模擬結果。由於報告只需要很少的時間來創建 - 這主要是簡單的算術 - 我可以安全地假設我可以通過不存儲報告的結果嗎?我很難找出未來的業務需求,這讓我很遺憾沒有將結果存儲在第一位。

回答

2

不存儲計算結果會減少冗餘,在我看來,這通常是一件好事 - 但歸結爲歸一化與操作所需的計算能力的情況。通常情況下,數據庫並沒有100%的標準化,因爲我們並不生活在理想的世界中(理想的CPU功率和I/O速度無限),所以它應該根據具體情況確定基礎。

如果您無法預見將計算結果存儲在數據庫中的需求,我建議您不要存儲它。數據庫通常比較容易維護,規範化程度更高。

2

稅收變動,適用於所有數據的任何其他法規。

您可以通過使用當時的值來解決此問題,但是當涉及任何已更改的計算時,複雜度將開始累積。

1

如果你有所有的數據,你可以根據這些數據計算模擬,那麼你應該沒問題。如果將來您發現這些模擬運行時間過長,則您可以開始存儲計算出的值,並簡單地更改應用程序以從中抽取歷史值。