php - 二叉树映射数据库查询

标签 php mysqli binary-tree binary-search-tree

我要开发如图所示的用户链。在第 0 级它有一个成员,第 1 级有 2 个,第 2 级有 4 个,第 3 级有 8 个成员..就像明智的第 9 级有 512 个成员,这是最后阶段。

在编程 View 中,要将成员的位置与其右翼和左翼关联到 x 级别,运行 2^x 查询是可悲的。 (对于第 9 级,2^9 次查询将命中 db)

是否有任何其他方法可以减少对数据库的点击次数?如何更好地映射成员之间的关系?

enter image description here

最佳答案

构造树表和区表。树表将包含父项、子项、边作为列。区域表包含用户标识、区域(它应该显示在其中的所有区域,在本例中为 9)和长度(从最顶层父节点开始的长度)作为列。所以在区域表中,第一级节点将有一个条目,第二行节点将有两个条目,类似地,第 9 级节点将有九个条目。

现在,当必须显示一个节点时,要检索其下面的所有节点,编写一个查询,例如 select * from zone where userid=xx 现在将此结果映射到树表以决定哪个节点出现在哪个节点和哪一侧。

关于php - 二叉树映射数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460045/

相关文章:

java - level-order, tree traversal - 如何跟踪级别?

php - 获取 json 数组的正确形式语法和相关 jquery 是什么

php - Session过期后Jquery警告框

php - 如何将带逗号的字符串插入MYSQL

PHP-MYSQLI : dynamically select attributes from db and display in dropdown issues

javascript - ajax调用可能有问题

java - 从递归方法返回时需要帮助

c - 为什么根在二叉树中总是为空

php - 无法使用php上传文件?

PHP Mysql 中止函数