有关多级分类数据查询的问题

分类表有三个字段:
id,category_name,parent_id
用户表有三个字段:
id,username,category_id
1、如何优雅的查出某个分类下的所有用户?
2、如何优雅的查出某个用户所处的的分类,按照从顶级到最低级的顺序展现?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 10
MissYou-Coding

递归

6个月前 评论

3级以上递归,3级或3级以下自连 1. Eloquent 模型

6个月前 评论

深度搜索/广度搜索

6个月前 评论
sanders

凡是要做类似分级数据的需求,推荐考虑使用楼上提到的 arcanedev/laravel-nestedset 这个包。分级层数越多,优化效果越显著。唯一需要注意的是,当分级数据总量较多时,改动数据效率会下降(尤其是历史老数据)。

6个月前 评论

1、如何优雅的查出某个分类下的所有用户?

whereIn(获取所有分类id)
分类id:
$cate_id = 33
$c  = Model::where('id','>',$cate_id) # where目的减少数据量
->select(['id','pid']) 
Db::select($model->table())->select( # 为了不用模型 10w的对象有点难吃的消 
$c->toSql(),$c->getbingds()
)
但是33子下所有id你不晓得,把数据给gpt即可。
  1. 同1

至于性能,我几年前测试, 10w = 160ms

似乎还是在 window 上,肯定能满足。

file

6个月前 评论

1.mysql 8.0 一个sql搞定
2.维护一个path字段 内容为1,2,3,4 可以用非递归做无限级查询

6个月前 评论

嵌套集合来做分类表 查询下面所有的分类 user表做in查询

6个月前 评论

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