我有幾張表,我想保留修訂歷史記錄。什麼是完成這個最好的方法?這將是幾個領域(20左右)。保持與PHP和MySQL的修訂歷史記錄
我應該創建一個重複的表並只提交舊數據嗎?我應該使用觸發器嗎?或者我應該創建一個單獨的表並只跟蹤所做的更改?
我有幾張表,我想保留修訂歷史記錄。什麼是完成這個最好的方法?這將是幾個領域(20左右)。保持與PHP和MySQL的修訂歷史記錄
我應該創建一個重複的表並只提交舊數據嗎?我應該使用觸發器嗎?或者我應該創建一個單獨的表並只跟蹤所做的更改?
這裏是我問了幾個月前的問題,但我會做同樣的方式再次
您可以在您的表格中添加另一列,用於跟蹤入口ID,而主動PK則是修訂ID。修訂版本號最高的是最新的活動記錄,具有相同入口標識的其他條目是以前的修訂版本。
我打算這樣做,但問題是有其他錶鏈接到此表的主鍵。所以,如果我插入一個新行,關係就會中斷。 – Keith
像Propel一些奧姆斯可以「原生地」處理這種經常需要。
它會自動添加一個版本列到 「版本」 表(比如MYTABLE),並創建一個mytable_version表(含肯定列mytable_id和版本)。
它提供了一個簡單的API來查詢版本化表。例如,當您執行$myobject->save();
時,它會自動填充表mytable_version並相應地更新字段mytable.version。
我們非常滿意我們的選擇,即對每個版本化的實體使用兩個表。
表將類似於此:
表person
:
person_version
)表person_version
:
person
)正如person_version
條目永遠不會改變,很容易對它們進行緩存(只要有不
你想你的版本可能會改變對錶的任何引用)表或修改表中的數據? –