2012-05-04 106 views
0

我在MySQL數據庫中有一列,我希望將它的值的所有修訂及其更改的日期一起存儲。MySQL列值修訂歷史

在MySQL中是否有任何內置機制允許我這樣做,或者有沒有解決這個問題的推薦方法?

+0

使用更多列然後一個?也許有一個新表,並使用JOINs? –

回答

1

MySQL沒有內置此功能。您需要自行實施,具體取決於您需要存儲的內容。您可能會在持久性邏輯中引入一個圖層,將您需要的日誌數據插入到單獨的歷史記錄表中。

根據您所做的更改量,請務必考慮清理策略,因爲隨着時間的推移這些歷史記錄可能會變得很大。

如果您正在討論需要此類歷史記錄的多個表,則可以根據預期的總體變化量使用單個歷史記錄表和附加列來標識變更所屬的表,或每個數據表單獨的歷史表。

另外,請看看可用的不同存儲引擎。有一個壓縮的Archive Storage Engine,一旦插入數據就不允許修改數據,並且還有其他限制,但其存儲要求低於e。 G。 InnoDB的。它是爲存檔目的而設計的,並非專門用於查詢,所以它可能會或可能不適合您。