我目前正在研究一個項目,在項目中我必須跟蹤在關係數據庫中修改過的元組。這應該包括更新的元組,但也插入和刪除元組。我的問題是完成這個的最好方法是什麼?我有我自己的一些想法,但也許有更容易/更好的方法,我沒有想到,或者已經存在一個完全這樣的項目。跟蹤數據庫中修改過的元組的最佳方式是什麼?
該項目的最終目標是,將不同廠家的關係數據庫工作,但第一個實現將使用MySQL數據庫。其他數據庫系統可以稍後支持。但如果適用於MySQL的解決方案可以很容易地適用於其他數據庫,那將會很不錯。
我的第一個想法是解析日誌文件。但是,我不確定這些日誌文件是否包含實際的修改過的元組,並且我可以想象這些日誌文件並不總是可用的(例如在共享主機上)。
我的第二個想法是在應用層面攔截查詢。當執行INSERT,DELETE或UPDATE查詢時,可以解析這些查詢,並且可以事先確定它們會影響的元組。對於INSERT操作,這只是插入的元組,對於DELETE或UPDATE操作,元組可以通過在新的SELECT語句中應用WHERE子句來標識。
作爲最後一句話我想補充一點,表現並不在這個階段發展的重要因素。
如果需要更多的細節,我很高興向他們提供。
您是否在尋求關於如何記錄關係數據更改的建議?如果是這樣,這是重複多次 - 嘗試搜索「審計記錄」。例如,請參閱http://stackoverflow.com/questions/2015232/database-design-for-audit-logging和http://stackoverflow.com/questions/1439173/enterprise-data-auditing。 – 2010-01-13 15:54:22