在HR中 多用户同时操作一项数据库修改工作
我有一个角色是人事专员,这个角色和用户之前是 一对多的关系!那么就可能有很多用户同时操作一项功能 比如“变更员工信息”!
这个问题要怎么解决呢,请大侠们指教?
------解决方案--------------------这种问题一般来说不需要解决。
首先:能够随意修改“员工信息”的人,就很少,管理人员或员工自身,这个要靠权限先卡住。
其次:本来就应该允许同时修改员工信息,无非是谁笑到最后(执行了Update),谁笑得最久而已。
对于单笔Update,也不存在事务一致性之类的问题,所以也没啥太操心的。
------解决方案--------------------如果真想控制的话,可以设置一个事务,在其中一个管理员进行更新操作时,将此表设为只读状态,持久化以后才能被修改,那样就不会担心同时操作的情况了
------解决方案--------------------几个人都可以对数据进行操作也很正常,就像去银行,你拿着存折,等着银行叫号,1号台可以给你办业务,2号台也可以给你办业务。明天再去银行,3号台也可以给你办业务。这些互不影响。
如果多人操作可以保存变量记录,记录变更的内容,变更的经手人。这样职责也清楚了,能找到问题数据的责任人。
------解决方案--------------------
先分析一下 多人对同一个操作 所带来的问题:
如果第一个人:将信息修改成A,未提交到数据库中。
第二个人: 将信息修改成B,未提交到数据中,第一个人。
结果发现第一个并不是自己想要的结果。
这就是我们所说的公共资源(修改信息) 有多个进程(多个人)操作,带来的数据安全性问题。
解决的办法很多:
(1)数据库事物
(2)java 应用程序锁,线程同步。
………………