2012-01-24 358 views
2

系統化記錄對哪些表進行了哪些更改的方法最有效的方法是什麼?例如,我的數據庫模式中有大約10-12個表格,一個表格通過連接大約7-8個表格來顯示記錄。如何同步由同一記錄或不同記錄上的各種用戶所做的更改。數據庫歷史記錄

方法A:具有行激活器/去激活器標誌。更新記錄時設置停用標誌,該標誌將停用該行並插入一個激活標誌開啓的新記錄。方法B:爲每個將數據存儲到時間戳記的表維護一個單獨的數據庫歷史記錄表。

假設:記錄會經常更新。預計的記錄總數不應超過1000行。

您可能想要提出的其他方法?

回答

1

我認爲,答案就在問題「你多久需要看具體的最高紀錄以及什麼原因?

如果您偶爾需要這個研究誰做什麼或審計puroposes時,使用審計表方法通過trigg填充在每次數據更改時。或者使用變更追蹤(如果它適用於您)(坦率地說,我們覺得審計不夠好)。更改跟蹤也可成功使用,以查看自上次數據導入後記錄是否發生更改。請注意,更改跟蹤數據不是永久的,除非您將其實際複製到另一個表中。

如果您需要頻繁顯示整個歷史記錄,則將其全部保存在一個表中,並通過觸發器維護一個有效標誌。創建一個只有活動記錄的開發人員才能查看最新數據的活動記錄。如果您正在對先前沒有存儲歷史記錄的現有數據庫執行此操作,則重命名該表並將該視圖命名爲同一個表原來沒有任何中斷。

我還會考慮使用單獨的歷史表,如果我需要報告歷史數據而不是應用程序的其餘部分。因此,我們需要了解銷售代表與銷售代表談話的目標實際上是否爲聯絡發生時的高價值目標,因爲此計算是衡量銷售代表績效的一部分。顯然我們需要歷史,但實際上只有一個月左右。因此,每天降低性能以將其保留在同一個表中可能不是最佳解決方案。這可能有助於將報告耗時的工作從日常工作中解脫出來,並且通常可能有助於提高性能。

+0

謝謝你的HLGEM。我喜歡這種方式來創建一個只有活動行和重命名概念的視圖。我可能會選擇這個選項。 – Kunal