关于商品销量更新的疑惑

$product   = $item->product;
            // 计算对应商品的销量
            $soldCount = OrderItem::query()
                ->where('product_id', $product->id)
                ->whereHas('order', function ($query) {
                    $query->whereNotNull('paid_at');  // 关联的订单状态是已支付
                })->sum('amount');
            // 更新商品销量
            $product->update([
                'sold_count' => $soldCount,
            ]);

假如在订单量数据很大的情况下,是否不考虑这种方式,这种方式每次都要遍历数据的商品成交信息,能不能直接在已有基础上递增会不会更好,(每成交一单,拿到这单关于这个商品的销售情况,再在原商品的基础上增加),就不要每次遍历订单信息吧

每天3小时...加油
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

用自增也可以。

这么写是我的一种编码思路,会预先想到一些非正常情况,比如被人手动修改了 sold_count

5年前 评论
讨论数量: 2
leo

用自增也可以。

这么写是我的一种编码思路,会预先想到一些非正常情况,比如被人手动修改了 sold_count

5年前 评论

@leo比如被人手动修改了 sold_count 值这种情况怎么出现,抓包吗

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!