首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在表中的LastModifyOn(DateTime)列上使用行版本(时间戳)有什么好处?

在表中的LastModifyOn(DateTime)列上使用行版本(时间戳)有什么好处?
EN

Stack Overflow用户
提问于 2014-06-26 10:34:12
回答 1查看 666关注 0票数 0

问题:

我正在处理asp.net应用程序,我的目的是确认只有在用户请求和提交之间没有更新时,表行才会更新。

场景

  1. 用户X和Y在不同浏览器中打开相同的发票(invoiceid=12)
  2. 用户X在UI中将发票日期更改为7月1日至2014年。
  3. 用户Y在UI中将发票日期更改为5-7月-2014年
  4. 用户X按提交按钮。-发票日期更改为2014年7月1日至2014年
  5. 用户Y按提交按钮。-发票日期改为2014年7月5日。

X和Y都不知道发票数据之间是否有变动。

解决方案-1

  1. 我们在发票表中添加了一个列LastModifyOn(DateTime)
  2. 在检索发票数据以进行编辑时,还可以获得LastModifyOn列数据
  3. 将加密的LastModifiedOn数据保存在UI中的隐藏字段中
  4. 当用户提交发票数据更改时,我们还发送LastModifiedOn进行比较。
  5. 显示适当的信息。

解决方案-2

  1. 我们在发票表中添加了一个列version(rowversion)
  2. 当检索发票数据以进行编辑时,还会得到版本的列数据
  3. 将加密的版本数据保存在UI中的隐藏字段中
  4. 当用户提交发票数据更改时,我们还发送版本的进行比较。
  5. 显示适当的信息。

X和Y知道发票数据在两者之间是否有变动。

问题:

现在我的问题是,在LastModifyOn(DateTime)上使用version(rowversion)列会有什么好处.

点:

  1. 我们是审计跟踪在发票表,所以最后更新的数据是可用的。
  2. 请说明优点,原因不像我们不需要显式更新行版本列或定义时间戳。
EN

回答 1

Stack Overflow用户

发布于 2014-06-26 14:24:21

似乎您已经决定(我可能会正确地添加)时间戳/行版本比datetime更好。这取决于你和你的目的。我会尽量列出这两者的不同之处。

  • 时间戳范围为: 1970-01-01 : 00:00:01至2038-01-19 03:14:07;如日期为1000-01-01 : 00:00:00至9999-12-31 23:59:59
  • 时间戳支持时区,因为datetime不支持
  • 保证时间戳是唯一的(只要使用得当),因为datetime只是一种数据类型,可以被操作(例如,在insert中指定)。

PS:从v2008开始,不推荐使用“时间戳”,所以使用行号(它们是同义词)*。

*资料来源:http://msdn.microsoft.com/en-us/library/ms182776.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24428230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档