微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 由多个用户编辑数据库记录

我设计了数据库表(在MS sql服务器上进行了标准化),并为一些应用程序创建了一个独立的 Windows前端,这些应用程序将被少数用户用于添加和编辑信息.我们将添加一个网页界面,以便日后在我们的生产区域进行搜索.

我担心如果两个用户开始编辑相同的记录,那么最后一次提交更新将是“赢家”,重要信息可能会丢失.我想到了一些解决方案,但我不确定是否会造成更大的头痛.

>不做任何事,希望两位用户永远不会同时编辑同一条记录. – 可能永远不会发生,但如果它呢?
>编辑例程可以存储原始数据的副本以及更新,然后在用户完成编辑时进行比较.如果它们不同,显示用户和确认更新 – 将需要存储两个数据副本.
>添加上次更新的DATETIME列,并在更新时检查它匹配,如果不是则显示差异. – 在每个相关表格中需要新的列.
>创建编辑表,注册用户开始编辑要检查的记录,并阻止其他用户编辑同一记录. – 将需要讽刺的程序流程,以防止死锁和记录被锁定,如果用户崩溃了程序.

有没有更好的解决方案,或者我应该去哪一个

解决方法

如果你期望不经常的碰撞,Optimistic Concurrency可能是你最好的选择.

Scott Mitchell写了一个关于实现该模式的综合教程:
Implementing Optimistic Concurrency

原文地址:https://www.jb51.cc/mssql/82010.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐