2009-10-15 38 views
1

我有一個應用程序,允許我的用戶對正在進行的預訂進行臨時更改。我最近閱讀了SQL Server中新的XML數據類型以及相應的SqlXml類型。正確使用SQL Server中的XML數據類型?

我想使用新類型來存儲對象的以前的值,以便我可以稍後恢復到它們。

喜歡的東西:

訂房表:

BookingID int 
SomeField1 String 
SomeField2 String 
SomeField3 String 
RevertValues XML 
RevertDateTime DateTime2 

這是我的表的削減版本,但我計劃在當前值存儲在ReverValues列,然後恢復時達到RevertDatetime。

我的應用程序使用帶有MVC前端的SQL Server 2008數據庫Linq-to-SQL模型。

任何和所有的建議將不勝感激,因爲我從來沒有做過這樣的事情!

感謝

回答

2

聽起來像是一個好主意,我 - 我做在SQL Server審覈類似的事情,我保留審計條目表,有兩個XML字段一起 - ValuesBeforeValuesAfter - 記錄並跟蹤變化。

您可能想要做的是將「RevertValues」拆分爲與您的預訂具有外鍵關係的單獨表格,以便您可以跟蹤預訂的多個修訂版本 - 例如BookingHistory表格:

BookingHistory

BookingID   INT (FK to Booking table) 
DateOfModification DATETIME 
BookingData   XML 

或類似的規定。

Marc

+0

Thanks Marc。如何在列中存儲/提取對象? Serialise/Deserialise方法?也許把我的部分類中的xml屬性? – littlechris 2009-10-15 15:19:41

+0

就我而言,我只是簡單地將有問題的對象序列化爲XML並將其存儲。工作正常。我不會將它存儲在您的對象中 - 但在類上提供一種方法將類內容呈現爲XML(返回字符串) – 2009-10-15 15:31:24

+0

有意義。謝謝馬克。我會嘗試的。 – littlechris 2009-10-15 15:35:24

相關問題