当前位置: 首页 > news >正文

(转)关于多人操作数据的处理策略

在系统中可能会出现这样的状况:

1 对同一条数据,两人同时进行操作,其人第一个人想做修改的操作,第二个人想做删除的操作。第二个人做删除的操作比第一个人要快,这时第一个人修改完成,进行提交时,并不会提示出错,只会提示0条记录被修改。

2 对同一条数据,两人同时进行修改操作,第一个人先进去修改,然后,第二人个又进去修改,第一个人改完后提交,第二人也修改完提交,其中第一个人比第二个人速度快,这样就造成,二个人修改前读取的数据是一样的,而第二人个修改的数据,覆盖了第一个人修改的内容,造成第一人的工作白做了。

 

这样就造成了数据操作的问题,基于以上问题,我想到以下的方案来解决。

 

方案一 乐观锁机制

在表中增加一个字段,版本号或时间戳,当第一个人准备修改数据前,先查出这条数据的版本号或时间戳,前执行修改时,再去库中查出版本号或时间戳是否与之前一至。如果不一至,提示用户数据已被改变;如果一至可进行修改,修改时,更新库中的版本号(增加版本号)或时间戳(最后修改时间)。

 

方案二 申请操作机制

多人操作数据时,可以建立一个申请机制,当有人想对某条记录操作时,需求先申请该条记录的操作权,申请成功,可以进行修改或删除的操作,操作成功,则自动释放该条数据。如果不想操作该条数据,则可以手动释放,让别人去做。

转载于:https://www.cnblogs.com/toge/p/6114691.html

相关文章:

  • C#的扩展方法解析
  • 4D卓越团队-两天培训总结
  • sql查询
  • 为什么LTE系统的最小时间单位是Ts?
  • MWeb 2.0.7 版发布!
  • 超全面Java 面试题(2.1)
  • my-innodb-heavy-4G.cnf配置文件注解
  • UML总结--总体架构
  • input子系统
  • Redis/MongoDB用户权限配置
  • hive产生很多.staging_hive文件
  • 互联网应用在高并发
  • 20161206
  • 【原创】Chrome最新版(53-55)再次爆出BUG!
  • avalon2.2的VM生成过程
  • 【笔记】你不知道的JS读书笔记——Promise
  • CentOS7简单部署NFS
  • Git同步原始仓库到Fork仓库中
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript新鲜事·第5期
  • Nacos系列:Nacos的Java SDK使用
  • Redis在Web项目中的应用与实践
  • SwizzleMethod 黑魔法
  • 聊聊redis的数据结构的应用
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 首页查询功能的一次实现过程
  • 通过几道题目学习二叉搜索树
  • raise 与 raise ... from 的区别
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​VRRP 虚拟路由冗余协议(华为)
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (python)数据结构---字典
  • (独孤九剑)--文件系统
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (五)c52学习之旅-静态数码管
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • *2 echo、printf、mkdir命令的应用
  • .“空心村”成因分析及解决对策122344
  • .gitignore文件—git忽略文件
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net 6.0 处理跨域的方式
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Micro Framework初体验
  • @Bean, @Component, @Configuration简析
  • @NestedConfigurationProperty 注解用法
  • @在php中起什么作用?
  • [100天算法】-实现 strStr()(day 52)
  • [20190416]完善shared latch测试脚本2.txt
  • [Android]使用Android打包Unity工程
  • [C#][DevPress]事件委托的使用