开发者社区> 问答> 正文

编辑多个用户的数据库记录

我已经设计了数据库表(在MS SQL服务器上已规范化),并为应用程序创建了一个独立的Windows前端,少数用户将使用该窗口来添加和编辑信息。我们将添加一个网络界面,以便以后在整个生产区域进行搜索。

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

1. 不执行任何操作,并希望两个用户永远不会同时编辑同一条记录。-可能永远不会被遮挡,但是如果会呢?
2.编辑例程可以存储原始数据的副本以及更新,然后在用户完成编辑后进行比较。如果它们不同,请显示用户并确认更新-将需要存储两个数据副本。
3.添加最后更新的DATETIME列,并在我们更新时检查它是否匹配,否则请显示差异。-在每个相关表中都需要新列。
4.创建一个编辑表,该表在用户开始编辑将要检查的记录时进行注册,并防止其他用户编辑同一记录。-需要认真考虑程序流程,以防止死锁和记录在用户退出程序时被锁定。

有没有更好的解决方案,或者我应该选择其中一种?

展开
收起
心有灵_夕 2019-12-24 22:10:28 704 0
1 条回答
写回答
取消 提交回答
  • 好的方法是使用列lastupdate(timetamp数据类型)。当SELECT和UPDATE只是比较此值时,此解决方案的另一个优点是可以使用此列来跟踪数据发生更改的时间。我认为,如果只是创建一个Colum,如isLock来检查更新,那是不好的

    2019-12-25 13:29:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载