首页 / 知识
关于php:检索树中属于另一子节点的所有节点
2023-04-16 08:04:00

Retrieve all nodes in a tree that are children of another one我有一个Web系统,其中有一个经典的父子菜单保存在数据库中,字段id为PK,parent_id指向拥有的菜单。 (是的,我知道这不能很好地扩展,但这是另一个主题)。 因此,对于这些记录(id-parent_id对):
我有这棵树:
我需要隐藏一个顶部节点,因此我必须列出该节点的所有子节点,即对于4,它们将是(9,6,14,16)。 顺序无关紧要。 我很困惑...这是否适合经典的树木问题? 还是一张图? 如何使用php来构成此结构并解决此问题? 相邻列表模型很难处理。我现在所在的公司将它们用于层次结构,这会造成很大的麻烦。我已经为先前的雇主成功地使用了Celko的嵌套集模型,它们对于创建,维护和使用层次结构(树)非常有用。 我找到了描述他们的链接:http://www.intelligententerprise.com/001020/celko.jhtml 但是,我还建议由Joe Celko撰写的《 SQL for Smarties:高级SQL编程》一书,其中涉及嵌套集。 Joe Celko的Smarties SQL:高级SQL编程 聪明人的SQL中的Joe Celko的树和层次结构 这是使用递归的绝佳机会! 伪代码:
编辑:没注意到您的树是相邻列表格式。在开始使用它之前,我可能会将其构建到实际的树数据结构中。只需遍历所有对(在您第一次看到它们时创建节点)并链接它们即可。我认为应该很容易... 对于嵌套集实现,这是微不足道的。请参阅此处以获取更多详细信息:
否则,编写如下内容:
这是一个图形问题。查看BFS(深度优先搜索)和DFS(深度优先搜索)。 |
最新内容
相关内容
linux进入节点命令?
linux进入节点命令?,设备,地址,系统,信息,工作,工具,网络,资料,代码,文件,登录Linux服务器后如何更换节点?命令行是什么?Python常用的包管理器命令上一级菜单linux?
命令上一级菜单linux?,目录,电脑,系统,命令,位置,软件,名称,空格,上级,终端,linux命令中,在属主目录的位置,想要在上一级目录新建一个目录,但linux下抓取字段命令?
linux下抓取字段命令?,数据,系统,命令,单位,报告,工具,字符串,文件,范本,样式,Linux系统怎么使用awk命令处理文字数据?其中command是真正的awklinux提取字段串命令?
linux提取字段串命令?,数字,字符串,状态,工具,命令,文件,范本,样式,正则,字段,linux如何获取两个字符串之间的内容?1、在 Linux 中,您可以使用linux创建节点命令?
linux创建节点命令?,设备,系统,信息,软件,试点,电脑,节点,香港,官方网站,官网,linux系统设备节点可以创建在1、设备节点通过 mknod 命令创建,也开机备节点linux命令?
开机备节点linux命令?,系统,工作,地址,命令,信息,目录,管理,工具,时间,基础,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux下节点检查命令?
linux下节点检查命令?,系统,信息,工作,名称,命令,地址,情况,文件,服务,第一,linux系统怎么进入不同节点命令1、年4月29日ifconfig命令可检查并python判断xml是否存在某一节点?
python判断xml是否存在某一节点?,数据,培训,节点,方法,结果,表达式,长度,以上,更多,内容,python中判断xml是否存在某一节点的方法:使用selectNpythonTKinter弹出式菜单的使用
pythonTKinter弹出式菜单的使用,培训,位置,系统,菜单,东坡,汽锅,参数,事件,肘子,上下文,1、弹出菜单也叫上下文菜单,建立菜单并向菜单添加各种pythonTKinter普通菜单的介绍
pythonTKinter普通菜单的介绍,培训,名称,菜单,果菜,顶层,快捷键,函数,实例,种类,定义,pythonTKinter普通菜单的介绍TKinter中的菜单种类比较关于.net:XML节点名称清理代码
关于.net:XML节点名称清理代码,关于.net:XML节点名称清理代码,节点,字段,文件,数据,XML node name clean up code我试图基于表中的数据关于sql:如何使用随机数据更新字段?
关于sql:如何使用随机数据更新字段?,关于sql:如何使用随机数据更新字段?,字段,数据,我在,我想,How to update a field with random data?