无限极推广,如何快速得到某个用户的下级用户总数?
程序员文章站
2022-05-15 22:26:27
...
目前在用户表里面用pid关联上下级关系,统计某个用户的下级总数时用的递归查询到19级,但是后来发现在用户下级数量较大时直接就将网站拖死了,请问大家该怎么处理?谢谢。。
回复内容:
目前在用户表里面用pid关联上下级关系,统计某个用户的下级总数时用的递归查询到19级,但是后来发现在用户下级数量较大时直接就将网站拖死了,请问大家该怎么处理?谢谢。。
增加一个path字段
这个其实在很多电商站里面也会遇到这种类似无限级分类的问题,设计我们有时候会所以然的加上一个pid要标识子类,到最后进行查询都得把自己给搞死了。
这时候我们就是修改数据库表结构就可以了,允许数据冗余这个问题就解决了。
补充:
可以在当前表里面增加一个列叫pid_list,这里面存储的格式为1,2,3 1为最高层级 2为上线,3为自己本身的id.
还可以是增加一个标识自己所属的层级Depth,1级为1,对应pid_list的位数层级数。
加了这些之后我们再去查询就方便很多啦。
参考无级数分类
可以增加一个path字段
直接在每个用户记录上增加一个孩子总数, A->B->C->D 如果C邀请了D, 则更新ABC三个加1。 这个任务如果非实时,可以异步处理。