无限极推广,如何快速得到某个用户的下级用户总数?
目前在用户表里面用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。 这个任务如果非实时,可以异步处理。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Validator can be created by adding the following two lines in the controller.

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c
