我一直看到一些问题引用了数据库表中名为 DateLastUpdated 的列。我不明白。
我见过的唯一伴随字段是 LastUpdateUserId 等。从来没有关于更新发生原因的指示;甚至更新是什么。
最重要的是,此字段有时是从触发器内写入的,在那里可用的上下文更少。
它甚至远不及审计追踪。所以这不能成为理由。如果有 是 和日志中某处的审计跟踪或其他内容,该字段将是多余的。
我错过了什么?为什么这种模式如此受欢迎?
最佳答案
这样的字段可用于检测是否存在不同进程所做的冲突编辑。当您从数据库中检索记录时,您将获得先前的 DateLastUpdated 字段。对其他字段进行更改后,将记录提交回数据库层。数据库层检查您提交的 DateLastUpdated 是否与仍在数据库中的日期相匹配。如果匹配,则执行更新(并将 DateLastUpdated 更新为当前时间)。但是,如果不匹配,则其他某个进程同时更改了记录,可以中止当前更新。
关于triggers - 最后更新日期 : Antipattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/422222/