论坛首页 Java企业应用论坛

多人操作数据的处理策略--讨论

浏览 18507 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-24  
szcs10138456 写道
小盆友们不用争了,先查询,加上乐观锁不就OK了。

这压根不是这个问题,主要是考虑后台操作人员工作重复,人家是通过这个统计工作量的
0 请登录后投票
   发表时间:2011-05-24  
使用乐观锁解决方案,可以用版本号、时间戳,让用户自己处理!
0 请登录后投票
   发表时间:2011-05-24  
记录操作日志么。
0 请登录后投票
   发表时间:2011-05-24  
乐观锁
加上 时间字段 or  版本号
0 请登录后投票
   发表时间:2011-05-24  
rocketball 写道
szcs10138456 写道
小盆友们不用争了,先查询,加上乐观锁不就OK了。

这压根不是这个问题,主要是考虑后台操作人员工作重复,人家是通过这个统计工作量的

我表示鸭梨很大。。。。。。我不懂。
0 请登录后投票
   发表时间:2011-05-24  
在数据更新操作之前,再次查询表的时间戳,与前次查询结果进行比较,一致的情况下,进行更新操作。不一致的情况,说明数据状态已经更改,要报信息给终端用户,更新数据!
0 请登录后投票
   发表时间:2011-05-24  
1.表中增加 版本号或者最后更新时间(如果增加最后更新者,如果有冲突时可以有更好的用户提示)
2.读取数据时把版本号或者最后更新时间一起读取下来,
3.操作数据时比较版本号或者最后更新时间,如果一致,才能操作数据,更新数据时需要更新版本号或者最后更新时间。
4.删除采用伦理删除,表中增加一个删除标志。删除时更新标志即可,同时也需要需要更新版本号或者最后更新时间。
5.有更新数据时,请主要先在开始时把需要更新的数据进行锁定操作。
简单的想了下,暂时想到了上面的这些。
扩充话题:如果数据只能让一个用户操作。
  在数据中增加一个是否被读取的标志? 如果有读取标志的用户最后异常退出,没有更新回读取的标志的话,该如何处理? 或者采用别的什么方法呢? 
0 请登录后投票
   发表时间:2011-05-24   最后修改:2011-05-24
rocketball 写道
szcs10138456 写道
小盆友们不用争了,先查询,加上乐观锁不就OK了。

这压根不是这个问题,主要是考虑后台操作人员工作重复,人家是通过这个统计工作量的


由于多人操作数据,数据是共用的,所以设立一个机制,做某笔数据前,先申请,申请成功再开始操作(修改、删除)。

看到数据列表后,先把某笔数据申请下来(数据库表中记录申请人信息,便于统计工作量),申请成功则开始做该任务,如果不想做该数据,则可以释放,让别人去做。

ps.如果要统计工作量,删除应该是逻辑删除。
0 请登录后投票
   发表时间:2011-05-24  
乐观锁,和ArrayList里面的ConcurrentModificationCount一样
0 请登录后投票
   发表时间:2011-05-24  
railway 写道
rocketball 写道
szcs10138456 写道
小盆友们不用争了,先查询,加上乐观锁不就OK了。

这压根不是这个问题,主要是考虑后台操作人员工作重复,人家是通过这个统计工作量的


看到任务列表后,先把某笔任务申请下来(数据库表中记录申请人信息,便于统计工作量),申请成功则开始做该任务,如果不想做该任务,则可以释放,让别人去做。

这个是排它锁,和synchronized一样
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics