我想在MySQL表中快照一行。獲取數據庫錶行的快照?
原因是,如果有人購買了產品。我想拍攝該產品的快照以存儲訂單。
它需要一個快照來保持數據的完整性。如果我只將產品分配給訂單,如果產品將來發生更改,訂單將顯示這些更改。例如,如果價格發生變化,訂單現在將加載新數據並表示它以新價格銷售產品,而不是訂單下達時的價格。因此,需要將快照分配給訂單。
我過去的做法是有兩張表格,一張是產品,另一張是產品快照。快照有每列作爲常規表加上額外的列像order_id
我有一個腳本來拍一個快照,自動查看常規表中的字段,並試圖做一個插入到快照表中的相同字段。
該方法最大的問題是,如果我向常規表中添加了列並忘記將相同的列添加到快照表中;該腳本會嘗試將數據插入不存在的字段並失敗。
我也不喜歡有兩個幾乎相同的表的想法。我想也許想出一個方法來使用一張桌子可能會更好。
所以我想知道是否有一種已知的方法,我不知道要解決這個問題?
我以前的項目沒有使用框架,但如果有問題,我的下一個項目將使用CakePHP。
+1好的建議,對我的設計有一個明顯的改進。我會等到看到是否有其他好的建議,然後再標記答案。謝謝! – 2011-02-15 19:31:51