我想知道如何在sql server中保存已编辑的值,以便在此之后返回到它的值。
例如:
我有它的状态正在工作的用户,在它的状态被“关闭”一年之后,状态在表用户中被保存为一个id,当它正在工作时,状态id是1,当它关闭时,我将id更新为2。我怎样才能看到这个用户从日期到现在是工作的,而现在他已经关闭了。
谢谢你的回复。
我问你了。
但是这里的问题是,我这里只给出了一个例子,就是用户状态,但问题是,我有那么多表,我更改了它们的Id。例如,我有城市的Id,或者产品的Id等等。
如果我将它保存在同一个用户表(例如,我丢失了用户id ),因为每次更新用户时,它都会接受一个新的id,或者如果我执行一个用户状态表,我将执行20个或更多的表,比如用户状态历史记录。此外,我还想保存文本,不仅是id的。例如,用户获得了一个新的地址,我想说,从这个日期到今天,他在以前的地址,现在他住在另一个地方。
任何建议请:).
发布于 2011-05-02 07:51:46
您的问题非常不清楚,但我认为您的意思是“我有一个带有状态列的user表,我需要看到状态更改的历史记录,因为当我更改特定用户的状态值时,我会丢失以前的值”。
如果这是正确的,一个简单的解决方案是添加一个名为UserStatus的第二个表,并在每次用户状态更改时向其中插入一个新行。然后,您可以轻松地查看每个用户状态更改的完整历史记录,还可以通过查询用户的“最新”行来查找任何用户的当前状态。
原则上,如果添加UserStatus表,则用户表上的Status列是不必要的,因此可以删除它。如果这是不可能的(例如,您不使用该表控制应用程序),那么您可以在更新状态时向用户表添加一个触发器,该触发器将自动填充UserStatus表。
发布于 2011-05-02 10:44:05
我的建议是有两栏
一个是工作/日期和关闭/日期,这样您就可以维护数据的历史记录。
https://stackoverflow.com/questions/5848329
复制相似问题