toB 应用设计系列 - 并发编辑问题
概述
同时编辑
多个程序(一般是多个用户, 有些可能是用户操作引起的间接操作, 有些则是自动运行的程序)同时对同一个事物进行编辑(修改)的现象
编辑相同的属性
用户A / B 同时编辑同一个订单信息的备注属性(原先没有备注), A 将其改成 红色, B 将其改成 大号. 从 A 的角度看, 备注属性应是改成了 红色, B 的角度看, 应该是 大号, 引发了问题
大部分的系统处理结果是最后修改的生效(即若用户A后修改, 则备注为红色, 若用户B后修改, 则备注为大号)
编辑不同的属性
假设订单界面上有两个属性, 一个是供应商(原先是供应商x), 一个是备注(原先没有备注), 用户A 将供应商改成 供应商y, 同时用户B 将备注改成 大号
从用户A 角度看, 结果应该是 供应商为供应商y, 没有备注
从用户B 角度看, 结果应该是 供应商为供应商x, 备注为大号
企业期待的结果是 供应商: 供应商x, 备注: 大号
大部分的系统处理结果是依然是最后修改的生效(即若用户A后修改, 则供应商为供应商y, 没有备注, 若用户B后修改, 则供应商为供应商x, 备注为大号)
滞后编辑
在用户进入页面到用户编辑操作这段时间内, 有其他程序(或用户等)对页面显示的字段进行了编辑, 用户再提交编辑操作的现象
用户A 在 10:00 进入编辑订单的页面, 订单页面显示 供应商为供应商x, 没有备注, 然后用户A 尿遁, 暂时离开, 用户B 在 10