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

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

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

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

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

解决方法

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

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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...