不链表实现按照商品销量排序,排序字段在另一张表

查询可以用with实现,排序就不好处理了,感觉很多场景都需要跨表排序,这样岂不是必须要链表,有没有搞过的大神指点下

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 27

不去连表获取排序字段,那就先根据排序获取到对应商品的顺序,然后用find_in_set("id",'2,3,4,1')去排序

1年前 评论
彭彭 (楼主) 1年前
小猪蹄子 (作者) 1年前
小猪蹄子 (作者) 1年前
彭彭 (楼主) 1年前
彭彭 (楼主) 1年前
小猪蹄子 (作者) 1年前
小猪蹄子 (作者) 1年前
bishi123 1年前

不用with用join呗。

我问一下,这种需求对应的原生SQL写的出来吗?

1年前 评论
彭彭 (楼主) 1年前
bishi123 1年前
L学习不停 (作者) 1年前

那就增加冗余字段,创建订单后异步更新商品销量字段

1年前 评论
彭彭 (楼主) 1年前
bishi123 1年前
Imuyu (作者) 1年前
sanders

要不把销量写在商品表里,定期或通过事件进行更新,再排序不就简单了。

1年前 评论
彭彭 (楼主) 1年前
sanders (作者) 1年前
bishi123 1年前
sanders (作者) 1年前

不知道你具体场景,既然排序字段在另外一张表,干嘛不用那张表,然后with出商品信息?

1年前 评论
小猪蹄子 1年前

结案了吗,最终解决办法是什么?

1年前 评论
彭彭 (楼主) 1年前
Squ1rrel

如果总是跨表高频率查询,是不是考虑表架构设计有问题了

反正从算法设计的角度,跨域做事情,时间很容易时间爆炸

看看能不能 cache 高频率的查询部分,或者增加字段做 cache

1年前 评论

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