zoukankan      html  css  js  c++  java
  • 如此并发性问题

           这几天忙着解决并发性问题,一直也没好的解决方案,查过的一些资料也基本上就是数据库加琐,可我遇到这种情况估计用数据库加琐是很难解决的,下面大概描述这种情况:

           A,B用户(都具有该问这个模块权限的情况下)进入同一个管理列表时,数据都是相同的(因为当时可能还没有被修改),当时A用户就发现某条记录某项还没填写完整点击进去修改,此时B恰好也同时进入了该页面,也有想修改的意思。A用户把其中某项数据填写完整后提交了。而B看到这条记录,其实A用户已经填写完整了,但是他还不知道(看到的还是原先的信息),以为这下记录可能还存在问题,所以他在该记录信息的备注项,填写了“该信息未填写完整”,然后也提交上去。这时这条记录的信息其实就被B用户修改了,而A刚刚把这个填写完整的信息,全被B用户填写的信息覆盖了。

    AB用户看到列表如下:
     

    这时他们发现货物编号为53453453453里面填写不完整,两人正好同时点击进入了修改页。如图:


    A用户把目的港改动了,而B用户在备注填写了一些说明(可能是说目的港填写有错).

    A修改完以后,B随后也做了修改,这时完整的信息其实是被B修改的信息,而A刚刚把目的港改写的信息还是被成被B修改后的原始信息了,就等于A的修改动作没做一样了。

           这种情况如果单纯用数据库,估计很难解决,曾经想过把这条记录在某用户点击编辑时琐定,然后通过会话ID的判写,加记录的ID,此时只能第一个点击编辑的用户,才有编辑权限,当触发Session_End,就结束锁定该记录。

           以上问题是我个人的一点想法,不知园子里的朋友如果处理此问题的,向大家讨教心得。

  • 相关阅读:
    php tp6 踩坑(1)使用cookie助手函数 接口报500错误,但却没用错误信息问题
    php 杂项(2)--md5加密
    php tp6学习笔记(100) 正则表达式
    php 杂项(1)--单引号和双引号的区别
    pins和ports区别
    analyze&elaborate
    编译前后保存database
    DC层次化设计
    synthesis建立和保存
    DC综合过程和目标
  • 原文地址:https://www.cnblogs.com/netcorner/p/1255395.html
Copyright © 2011-2022 走看看