如果树形结构数据库设计成如上所示,如何找到树形结构的某个节点的所有子节点?
通过查资料发现,这个问题需要用到递归算法,有没有人能教一下怎么写?
加个字段 path: 把最短路径存上,用,号隔开,root节点的pid为0 , id不建议所作自增, 否则以下方法有bug, 用uuid解决 所以所有节点的path都会以0开头 查询时 直接 path like '%,pid%' 注意,号
path
,
path like '%,pid%'
换个思路呢,不需要递归,一种查询效率比较高的方式 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
@xiaobaicai 这个英文文档只给出了已知有限层级的解决方案,不能解决未知层级的情况
我之前也遇到类似的问题,我们的方案是在每一个子节点都存上父节点和根节点的id。查询的时候,直接返回整个树,然后在前端找出某个子树。
直接构造json对象,存入字段
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
加个字段
path: 把最短路径存上,用,号隔开,root节点的pid为0 , id不建议所作自增, 否则以下方法有bug, 用uuid解决 所以所有节点的path都会以0开头 查询时 直接path like '%,pid%'注意,号换个思路呢,不需要递归,一种查询效率比较高的方式 http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
@xiaobaicai 这个英文文档只给出了已知有限层级的解决方案,不能解决未知层级的情况
我之前也遇到类似的问题,我们的方案是在每一个子节点都存上父节点和根节点的id。查询的时候,直接返回整个树,然后在前端找出某个子树。
直接构造json对象,存入字段