向ms-sql中的表添加一个名为recordversion的时间戳列有什么好处?
发布于 2008-11-20 14:45:12
您可以使用该列来确保您的用户不会覆盖来自其他用户的数据。
假设用户A提取记录1,同时用户B提取记录1。用户A编辑并保存该记录。5分钟后,用户B编辑了记录-但不知道用户A的更改。当他保存他的更改时,您在update where子句中使用recordversion列,这将防止用户B覆盖用户A所做的操作。您可以检测到此无效条件,并抛出某种类型的数据过期错误。
发布于 2008-11-20 14:44:33
据我所知,或者谷歌似乎很快就能找到。
使用该名称作为列不能获得任何固有的东西。当然,您可以创建一个列并按照下一个响应中的描述进行记录版本控制,但是列名没有什么特殊之处。您可以将列命名为任何您想要的名称,并进行版本控制,并且可以将任何列命名为RecordVersion,并且不会发生任何特殊情况。
发布于 2008-11-20 15:15:52
此外,请记住,如果您想要跟踪数据,最好将这四列添加到每个表中:
CreatedBy(varchar) | CreatedOn(date) | ModifiedBy(varchar) | ModifiedOn(date)
虽然它不会给你完整的历史记录,但它可以让你知道谁和何时创建了一个条目,以及谁和最后一次修改它的时间。这4列创建了非常强大的跟踪能力,而不会给数据库带来任何严重的开销。
显然,您可以创建一个成熟的日志记录系统来跟踪每个更改并提供完整的历史记录,但这不是我认为您提出的问题的解决方案。
https://stackoverflow.com/questions/307152
复制