我們正在設計過程中存檔的一套基於如日期,狀態等不同條件的記錄...設計數據歸檔的過程(SQL Server 2005中)
組簡化表:Claim, ClaimDetails, StatusHistory
(跟蹤要求狀態的變化),Comments
& Files
環境: SQL Server 2005中,ASP.Net MVC(.NET框架V3.5 SP1)
Claim
是主要實體,它在子表中提到了子行。有些具有細節,其他細節用於追蹤更改。最終根據一些標準,Claim
成爲「準備存檔」,如上所述。簡單地說,歸檔的Claims
將從數據庫中識別出來,並在網絡應用程序中以不同的方式處理。
這裏有一個簡單的版本:(俯視圖)
- 創建一個腳本,這標誌着一個以dB爲
Claim
「存檔」。 - 存檔行及其子行可以保存在同一個表中(設置標誌)或移動到不同的表中,該表將成爲原始表的副本。
- 在網絡應用程序中,我們將根據存檔狀態讓用戶過濾
Claims
。 - 將來可能需要「解除」
Claim
。
我需要知道什麼?
我們需要保持這種簡單和容易儘可能並靈活地適應未來的變化 - 請建議的方法。
適時的預定SQL腳本是此場景的最佳選擇嗎?
我應該考慮使用單獨的表還是隻爲每個表添加「存檔」標誌?
對於選定方法的性能考慮 - 如果我們打算擁有大約10,000個
Claims
以及如果它有100萬個,會有什麼不同?總之請提供一個輕載&重載方法。我們存儲在我們的服務器上物理上傳的文件 - 我相信這樣可以保持原樣。
注:聲明可以在所有提到的表任意數量的子結果,因此它獲得正折。
是否有一個標準的框架,或者說我應該是指了解歸檔進程模式。任何樣品參考文章或工具將幫助我瞭解更多。
謝謝,但這更像是維護每個編輯的DB日誌。一旦記錄存檔,我需要一些維護「歸檔」的東西,它變得只讀,所以不需要維護多個版本。此外,我們正在談論2-3年時間內的數百萬條記錄。 –
每個表格上都有一個存檔標誌是最簡單的解決方案,但對於您將來可能進行的任何更改,這不是一個非常靈活的方法。您還應該考慮在您的應用程序中使用多久存檔數據。如果主動聲明的訪問次數比歸檔聲明的次數多,那麼爲歸檔聲明創建單獨的表會提供更好的性能,因爲您將查詢一小部分數據。 – kishore