2012-08-17 65 views
2

我builing一個簡單的電子商務網站,和我遇到的訂單確認和創建有些疑惑...插入訂單的總價值,還是每次計算?

它更多的good practices那麼真正的問題一個問題...

我應該:計算總訂單價值,並插入數據庫,或者我應該每次計算它與訂單讀/ dosomething?

感謝

+1

這取決於數據庫佈局反正。我會說這兩個解決方案都很好。我不認爲這是最佳做法。 – Nemoden 2012-08-17 05:36:06

+0

@Nemoden好的...我喜歡在這裏問這些事情,因爲有時候有一個問題,我不知道...喜歡'不要鏈接地址表和訂單表'...(因爲用戶可以編輯地址)...無論如何感謝=] – 2012-08-17 05:38:43

回答

3

的最佳實踐數據庫土地意味着標準化數據,並存儲值可以計算違反了。

你應該從未店裏的東西,你可以計算出,除非你是絕對一定是不會有兩個值之間的差異。

例如,如果您的訂單包含兩件100美元的商品,但訂單設置爲150美元,您認爲應該發生什麼?

有時候,有正當理由(通常是性能相關的),以存儲可通過其他方式計算出的值,但性能提升有既顯著和必要和不一致性刪除或者計劃的可能性。

您可以刪除觸發器或物化視圖之類的可能性,也可以通過更改業務邏輯來檢測並修復問題或通過其他方式來規劃它們。

但是通常情況下,性能提升並不值得爲緩解潛在問題付出額外的努力。畢竟,你看到多少個訂單,其中百萬個人物品呢?除了美國國防部,當然:-)

3

在你的交易數據庫(即主要的,活的)你不應該存儲計算值。總結十幾行不算什麼。

但是,在您的分析數據庫(又名商業智能db-,數據倉庫)中,您應該確定存儲計算的總數。

1

作爲一種良好的做法,您不應該存儲可從表中現有列導出的值。

還有如果你想更新任何基礎列的原因有很多沒有做到這一點,如

  1. ,那麼你必須更新派生列也是如此。表

  2. 尺寸將增加

等。等等。