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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 27

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

11个月前 评论
彭彭 (楼主) 11个月前
小猪蹄子 (作者) 11个月前
小猪蹄子 (作者) 11个月前
彭彭 (楼主) 11个月前
彭彭 (楼主) 11个月前
小猪蹄子 (作者) 11个月前
小猪蹄子 (作者) 11个月前
bishi123 11个月前

不用with用join呗。

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

11个月前 评论
彭彭 (楼主) 11个月前
bishi123 11个月前
L学习不停 (作者) 11个月前

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

11个月前 评论
彭彭 (楼主) 11个月前
bishi123 11个月前
Imuyu (作者) 11个月前
sanders

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

11个月前 评论
彭彭 (楼主) 11个月前
sanders (作者) 11个月前
bishi123 11个月前
sanders (作者) 11个月前

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

11个月前 评论
小猪蹄子 11个月前

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

11个月前 评论
彭彭 (楼主) 11个月前
Squ1rrel

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

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

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

11个月前 评论

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