我必须在MySQL表中存储类似数据结构的树。任何节点都可以有任意数量的子节点,树的深度不固定。我创建了一个包含父节点列的表,以便我可以遍历树。
我需要从表中获取以给定节点为根的整个树并在php页面中呈现它。我可以创建一个过程来返回给定父级的所有子级并进行渲染。但为此我必须递归地为每个节点发出一个查询。
我想在单个查询中返回以给定节点为根的整个树结构。有没有办法做到这一点?
答案 0 :(得分:1)
您正在寻找的是“在关系数据库中存储分层数据的方法”。
如果你想避免递归,你将不得不以包含祖先/后代信息的额外列或表的形式复制一些数据。
请查看以下网址,说明执行此操作的几种方法:http://www.sitepoint.com/hierarchical-data-database/