我想在任何添加/刪除/更新操作發生,我會記錄它,增加審計跟蹤我們的系統,具有以下信息: -實現我們的應用程序中的審計跟蹤
的CRUD操作類型。它是添加,刪除還是更新。
已修改的記錄ID。
日期和時間。
現在我發現了兩種方法, 要麼具有單個審計跟蹤表具有以下字段: -
- ID。如123445.
- CRUD_description。如刪除
- Record_ID。如Qaeop12771
- 日期。如1june2O13
或者到有兩個表一個用於爲操作CRUD諸如
- CRUD_ID的查找表。如3.
- CRUD_Description.such作爲刪除。
然後審計試驗將參考上面的表中: -
- ID。如123445.
- CRUD_ID(這將是CRUD表的外鍵),例如3.
- Record_ID。如Qaeop12771
- 日期。如1june2O13
那麼哪種方法更好?
第二個問題如果我會按照第二種方法。然後是它傾向於使用CRUD_ID我的代碼裏面,例如,如果oprration是刪除我可能有我的代碼如下所示: -
Inset into audit_trail (ID, CRUD_ID, Record_ID, Date) values (123445, 3,12771,1june2O13) //CRUID 3 represents delete operation.
問候
什麼是您的RDBMS?您是否考慮過RDBMS中的任何可用(如果有)審計功能? –
我將使用Sql server 2OO8。但我無法使用數據庫登錄chnages,因爲用戶將在應用程序級別上定義。 –
另請參閱http://stackoverflow.com/questions/23770/good-strategy-for-leaving-an-audit-trail-change-history-for-db-applications – Pixelstix