存储数据库项的先前状态的最佳方法

时间:2012-02-23 05:46:22

标签: c# asp.net sql state

我有一个带有c#代码隐藏的asp.net应用程序。这个应用程序是一个调度系统,允许用户创建一个“骑”(存储在微软sql数据库中),通过各种过程修改,因为它的状态从等待> enroute>完成等。我试图找到最好的在修改之前“保存”此“骑行”数据库行的先前状态的方法,从而使用户能够“撤消”之前的更改。什么可能是最好的结构来实现这一目标?我考虑使用视图状态,但由于会有很多“游乐设施”,所以必须有更好的方法..

4 个答案:

答案 0 :(得分:1)

我会通过创建“历史”表在数据库中执行此操作。在“撤消”时,只需将数据还原为已保存的历史记录。

答案 1 :(得分:0)

撤销状态是暂时的(它们只能在当前骑行时撤消),还是永久性的(它们可以离开应用程序,回到他们一年前创建的骑行,然后按撤消)?

前者是观众的好候选人。后者需要一个历史表,如@ Induster的回答。

我怀疑状态量会显着影响服务器性能。测试一下,看看!

答案 2 :(得分:0)

答案 3 :(得分:0)

可能慢慢改变尺寸就是答案http://en.wikipedia.org/wiki/Slowly_changing_dimension