我计划在新的Web应用程序中使用MS Entity Framework(加油,EF v2!)。
因此,在现有和未来的数据库中的所有实体表中添加时间戳列以支持并发检查的计划有意义吗?在每个表中都有一个时间戳列是否有任何不好的想法呢?
请注意,重点是添加乐观并发支持,而不是审计。
我计划在新的Web应用程序中使用MS Entity Framework(加油,EF v2!)。
因此,在现有和未来的数据库中的所有实体表中添加时间戳列以支持并发检查的计划有意义吗?在每个表中都有一个时间戳列是否有任何不好的想法呢?
请注意,重点是添加乐观并发支持,而不是审计。
我多年来一直按例例行使用时间戳列。另一种选项是行版本,但是那样你需要更新它等等。我从来没有遇到过使用时间戳的任何问题。一个警告 - 如果您曾经选择进行临时表/表变量处理,您需要在临时表中使用varbinary(8)
而不是timestamp
,否则您的临时表将在更新时得到自己的唯一时间戳。;-p
正如您所了解的那样,timestamp
只有在并发方面有帮助。尽管名称中包含了 "时间 " 一词,但它与审核没有直接的联系。
它在微软数据库方案中(LINQ-to-SQL / EF / 等)得到了很好的支持。
In previous projects I used timestamps a lot, and I never had a bad experience with it. Additionally I would totally exclude the Entity Framework from that decision, because that s some that might change over time.