2012-12-06 62 views
1

我有用戶數據使用外鍵引用存儲在DB模式,這些外鍵都是admin定義。此外,還有一些沒有主鍵的數據存儲,但我有其他限制,以避免冗餘和其他問題。跟蹤數據的變化(更新/刪除)在MySQL

由於當用戶「更新」的信息,我不得不從「更新」表中刪除所有用戶的記錄,再重新插入所有用戶的記錄應用的要求。 (我已經查看過所有其他選項)現在

因爲我的搜索解決方案(SOLR)是,我需要跟蹤用戶數據的更改(更新/刪除)。我打算有一個觀點,即將最近提交的數據與實時數據進行比較。我害怕它會持續多久有運行,每20分鐘一個存儲過程或者是這樣,有與SQL跟蹤數據的更好的辦法?

回答

2

你可以創建一個包含相同的列原始表加叫另一列更改表「UpdatedOn。」然後設置一個觸發器,以在原始表更改時向此更改表寫入原始值。

實施例: 原稿臺:

Name | Address | City 
Jane Doe | 1 Main St. | New York 

更改到原稿臺:

Name | Address | City 
Jane Doe | 2 Smith St. | Dubuque 

...觸發插入到變更表:

Name | Address | City | UpdatedOn 
Jane Doe | 1 Main St. | New York | 2012-01-01 

有大約在MySQL這裏使用觸發器的信息:http://dev.mysql.com/doc/refman/5.0/en/triggers.html