【laravel】同一代码段内,先更新数据,后查询修改的数据,查询结果错误的问题

    如标题所言,是什么意思呢?举个栗子,需求如下:

  你是一个电话销售人员,手头有一些待call电话单,每个电话单上有N个不同的电话号码,需要你每打一个电话就标记为”已打“。当一个电话单上的号码都标记为”已打“后,自动将该电话单标记为”已完成“。

    处理方法通常是先"更新"刚刚打过的号码为"已打",然后查询该电话单中还剩余多少电话号码没打过,如果查询结果显示已经没有“待call”号码,则再“更新”该电话单为“已完成”。

    这样处理需要操作三次数据库,而且偶尔会出现前一步“更新刚刚打过的号码为已打”的操作,在下面查询出的结果显示并没有起作用的现象。目前不明确是什么原因,初步断定是公司网速偶有卡顿造成的。

    将处理思路改为:先查询出“待call”号码,除去本次打的电话号码,判断是否还有剩余的电话号码:

      ①如果还有待call号码:“更新本次拨打的号码为已打”即可;

      ②如果没有待call号码:“更新本次拨打的号码为已打” & “更新电话单为已完成”即可。

    这样处理不会发生在同一代码段里,先更新数据,紧接着查询刚刚操作的数据,显示结果不正确的情况,并且操作数据库的次数更少。

  

posted @ 2018-07-23 19:32  蒋起龙  阅读(352)  评论(0编辑  收藏  举报