我有一個處理和存儲訂單的應用程序。每個訂單都由包含定價,尺寸,顏色等各種東西的訂單項組成。我的問題是,如何持續保存這些數據,而不必將其綁定到可能發生變化的基礎數據。我應該如何持續保持訂單數據,而不必將其與可能發生變化的基礎產品定價數據掛鉤?
例如,某人訂購一件由5件東西組成的東西,每件東西的價格爲1美元,總共爲5美元。但是,在未來的某個時候,個別事物的成本會變爲0.50美元。現在,當我提出舊訂單時,總成本是2.50美元,而不是5美元。
最初,我想只是不允許更新兒童表格,但這並不是真的可行,因爲定價基於巨大的定價網格,客戶只需要更新,而不是每次價格都創建新定價網格絲毫變化。每個定價網格都需要數小時才能建立,定價每隔幾天就會更改一次。
另一個想法是序列化整個訂單,並從中完成工作。但是,這使得更新系統和更改任何內容變得困難。舊訂單將不再正確顯示,甚至可能會導致系統崩潰。
這是一個非常普遍的問題,我正在尋找一個最佳實踐觀點。
這是正確的。訂單發佈後,有關該訂單的所有內容都將保持不變:商品價格,稅務信息,優惠券信息,送貨地址等。您應該可以重新打印發票並獲得與之前打印的文檔完全相同的文檔。這不會在關係模型中產生冗餘,因爲「X的當前價格」與「訂單Y的訂單項Z價格」是不同的,即使這些值現在恰好相同。 – 2009-11-17 20:50:15