解决方案 »

  1.   

    加锁若业务上允许“同时编辑某一数据”,则以最后提交的为准
    否则在收到请求时返回 xxx正在编辑
      

  2.   

    在用户A编辑某条新闻读取成功时,将这条数据的状态字段设为1,记录读取的时间戳
    此时再有人想编辑,状态1就拒绝
    用户A的页面ajax轮询,每隔几十秒告诉服务器还在编辑并刷新时间
    当A编辑提交,或用户B想编辑状态为1,但是最后一次ajax提交的时间和当前差太多,就设置状态为0
      

  3.   


    谢谢您的回复,我有些疑惑在界面模块可以这样做吗?我曾讨教过一位做了多年php的朋友,他告诉我这没法整。
    之前我也想过设置标识,因为无法操作数据库,所以放弃了。
      

  4.   


    感谢版主的再次指教!谢谢“xuzuning”版主!
    我描述的还不够细致,重新描述下业务逻辑:
    界面层的功能包括:数据显示,数据编辑请求,操作用户的管理等,且界面层有操作用户的数据库。
    中间接口层:处理界面层的请求,无视操作用户,不管哪个操作用户的操作请求,中间接口层都视为合法。我感觉版主您的意思是在中间接口层处理,然后不管谁发过来的请求,请求过来,标识锁定,返回结果后再标识解锁?
    我之前也是这样认为的,因为第一次接触php, 对方是老手,所以不敢确定。对方非得要我在界面层来处理该业务,说用ajax就可以, 但我觉得我无法去设标识,所以困惑,才有此问。再次感谢版主的指教!
      

  5.   

    放在 中间层 比较合适
    因为一般的说,中间层就是通常说的 API 
    加一个过滤条件比较简单当然在界面层也可以实现,不过界面层不宜(不能)直接访问数据层。
    所以要单独设置缓存机制,未处理完的就不再向中间层发请求
    用一个共享内存或数据库或文件的队列就可以了