不判断关键字改了: 去排除本身的数据里看,不重复就更新,(会导致关键字没改也看重复)
判断关键字改了:改了才做重复校验(多一次查老数据查询,或者前端带来old数据)
做修改功能判断关键字重复:
1、不管改没改关键字 都去做重复性校验(没改关键字也做)
2、关键字改了才做重复性校验,(多一次查老数据查询,除非前端带来old数据)
重复性校验:
在排除本身的数据里,看关键字是否重复。
注:最好要排除本身。
如果做了关键字改没改的判断,大多数情况可以不用排除本身,因为关键字改了,跟本身比也没事,因为跟本身不重复了;但是有种情况必须排除本身,关键字重复的标准不是离散的值是否一样,而是连续的值是否一样,比如时间范围,就算起始时间结束时间不一样,也可能存在重复的时间范围。
如果没做 关键字改没改的判断,那肯定要排除本身
且,看是否重复,本来就是跟除了自己本身外的其他东西比较。所以排除本身是广泛适用的。
不管什么情况,如果是范围的,修改了关键字,都要排除本身,如果不排除,跟本身比,虽然新值离散的不一样了,但是新值组成的范围可能跟本身原来的范围(老值组成的范围)重复,所以要排除本身,且本来就要排除本身。
比如,原来范围1-5月,现在改为2-8月,虽然值都不一样,但是1-5 和 2-8存在重复部分,即跟本身存在重复,所以要把本身排除掉
知道改了 可以跟自己比 不用排除自己
不知道改了 如果没改那就有问题 不能跟自己比 要排除自己