Swi*_*ers
27
database
sql-server
我设计了数据库表(在MS SQL服务器上规范化),并为一个应用程序创建了一个独立的Windows前端,供少数用户用来添加和编辑信息.我们将添加一个Web界面,以便日后在我们的生产区域进行搜索.
我担心如果两个用户开始编辑相同的记录,那么提交更新的最后一个将是"赢家",重要信息可能会丢失.我想到了许多解决方案,但我不确定是否会引起更大的麻烦.
- 什么都不做,希望两个用户永远不会同时编辑同一条记录. - 可能永远不会发生但是如果它发生了什么?
- 编辑例程可以存储原始数据的副本以及更新,然后在用户完成编辑时进行比较.如果它们不同则显示用户和确认更新- 需要存储两个数据副本.
- 添加上次更新的DATETIME列并在更新时检查它是否匹配,如果没有则显示差异. - 每个相关表格都需要新列.
- 创建一个编辑表,用于在用户开始编辑将要检查的记录时注册,并阻止其他用户编辑相同的记录. - 如果用户崩溃了程序,则需要仔细考虑程序流以防止死锁和记录被锁定.
有没有更好的解决方案,还是应该选择其中一种?