2016-11-14 151 views
0

我有一組具有不同架構的參考表,我們在整合文件時將其用作參考數據。參考數據可以從GUI進行修改。拍攝SQL表的快照

而且要求是,如果有任何更改,我需要創建數據的快照。例如,用戶應該能夠看到哪些參考數據已被用於特定的日期。

選項1:使用日期歷史化每天晚上的所有表格。通過這種方式,當用戶想要查看用於特定日期的數據時,我們可以輕鬆查詢相應的歷史記錄表。由於用戶不會每天更改數據,所以我們將使數據庫日復一日地變大。

選項2:只對歷史數據(行)進行修改,修改日期並使用視圖獲取特定日期的數據。但是這種方式我需要編寫很多視圖,因爲不同表格的模式不同。

如果您知道我可以使用的最佳方式,如果您分享您的知識,我將不勝感激。

感謝,

+1

在SQL 2016,你有時間的表。在SQL 2014中,您需要在觸發器中創建邏輯等,這聽起來可能會令人望而卻步。當然,另一種選擇是保存參考數據與文件整合信息 –

回答

0

不知道如果可能的話,但是:
選項3:創建/編輯觸發器OnInsert /更新/刪除填寫新值到「歷史表格」,包括時間戳。
要獲取在「X」日使用的管理數據,只需使用時間戳。
另一種選擇(同樣不知道,如果可能的話)是「start_dt/END_DT」添加到管理員的表,並且進程查找只有活動數據
塞爾吉奧

+0

在這個選項一直以來,我需要做出不同的密鑰對不同的表,以匹配其數據已被修改,檢索結果時,這是麻煩的。 – SabVenkat

+0

好的,也許我不完全理解你的問題。你想知道哪些數據已經從先前的記錄改變了? –

+0

此外,不知道你的環境是否可能,但理想情況下,你會有表XX(主)和表XX_HIST(這將是XX的DDL的副本加上時間戳和任何其他評論領域,例如..爲可視化目的)。 將所有管理數據更改收集到單個表中會有點複雜,因爲它們具有不同的DDL。可能的,但可能不值得的努力。 –