2009-10-15 35 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

相关问题