嘿,所以這裏有一個設計問題:日誌表中的外鍵
我正在處理一個項目,需要我跟蹤用戶何時執行插入,更新或刪除。我試圖決定的是,是否讓日誌表引用受影響的行的主鍵或其他標識符。爲了在使用外鍵時記錄刪除,我需要爲每個表都設置一個刪除列。但是,如果我使用某個沒有外鍵的命名標識符,我最終會在Logs表中運行名稱重複,並且它將變得不清楚該條目引用的內容。有沒有人有這方面的實際經驗,特別是使用刪除列以保持完整日誌的性能影響?
一個相關的問題也是在日誌表本身的設計中。如果我在單個日誌表中使用外鍵引用,那麼我的第一個直覺就是爲每個正在監視變化的表創建一個引用列。這對我來說並不理想,因爲如果我必須添加一個新表,我必須更改日誌表和任何關聯的sprocs。我可以看到的另一種選擇是有兩列,TableName和RowId。但是這將沒有固有的外鍵引用,因爲它不知道引用了什麼表。
感謝您的任何意見!
刪除的標誌/列被稱爲邏輯刪除。使談話更輕鬆。 – 2010-10-15 19:42:01