一种实现快速查询树形结构数据指定节点下级的方法技术

技术编号:15724793 阅读:462 留言:0更新日期:2017-06-29 11:11
本发明专利技术提供一种实现快速查询树形结构数据指定节点下级的方法,包括如下步骤:S1.将树形结构数据以深度优先遍历法中的先序遍历顺序存储到关系型数据库表中;S2.输入指定节点ID,判断要查询的该指定节点ID的所有下级节点ID,步骤如下:S21.设定要查询的节点ID对应序列号为N,对应深度等级为L;S22. 设定要查询的所有下级节点ID对应序列号范围N1‑N2,沿着序列号N升序的方向查询深度等级,设定为L′;当L′≤L时,查询停止,L′对应的序列号设定为N′,N<N1,N2< N′;L′始终大于L,则最后的序列号为N′,N<N1,N2≤ N′;N1和N2之间序列号对应的所有节点ID为要查询的节点ID。

【技术实现步骤摘要】
一种实现快速查询树形结构数据指定节点下级的方法
本专利技术属于数据处理
,具体涉及一种实现快速查询树形结构数据指定节点下级的方法。
技术介绍
业务系统中,经常会遇到树状结构数据,如组织机构树、产品分类等,这种树形结构数据在数据表中存储时,通常会将每个节点作为一条记录存储,每条记录通常包括节点ID、节点名称、上级节点ID等字段,需要查询某个节点的所有下级节点时,通常会采用递归查询的方式,然而当节点数较多,树层级较深时,递归查询性能会非常的差;采用构建、存储每个节点的所有上级节点ID全路径的方式,虽能够快速查询出指定节点的所有下级节点解决递归查询性能差的问题,但要依赖高级程序来维护路径中的字符串,并且验证字符串的正确性的开销很大,字符串的长度很难确定,无论字符串的长度设为多大,都存在不能够无限扩展的情况。
技术实现思路
本专利技术的目的在于,针对上述递归查询性能差,存储路径方式需要高级程序维护字符串及字符串长度难确定的缺陷,提供一种实现快速查询树形结构数据指定节点下级的方法,以解决上述技术问题。为实现上述目的,本专利技术给出以下技术方案:一种实现快速查询树形结构数据指定节点下级的方法,本文档来自技高网...
一种实现快速查询树形结构数据指定节点下级的方法

【技术保护点】
一种实现快速查询树形结构数据指定节点下级的方法,其特征在于,包括如下步骤:S1.将树形结构数据以深度优先遍历法中的先序遍历顺序存储到一张关系型数据库表中,数据库表字段包括序列号、节点ID和深度等级,节点ID是主键,每个节点ID取不同的值;S2.输入指定节点ID,判断出要查询的该指定节点ID的所有下级节点ID,步骤如下:S21.设定要查询的指定节点ID对应的序列号为N,对应的深度等级为L;S22.设定要查询的所有下级节点ID对应的序列号范围为N1‑N2,沿着序列号N升序的方向在数据库表中查询深度等级,设定为L′;当L′≤L时,查询停止,L′对应的序列号设定为N′,N<N1,N2< N...

【技术特征摘要】
1.一种实现快速查询树形结构数据指定节点下级的方法,其特征在于,包括如下步骤:S1.将树形结构数据以深度优先遍历法中的先序遍历顺序存储到一张关系型数据库表中,数据库表字段包括序列号、节点ID和深度等级,节点ID是主键,每个节点ID取不同的值;S2.输入指定节点ID,判断出要查询的该指定节点ID的所有下级节点ID,步骤如下:S21.设定要查询的指定节点ID对应的序列号为N,对应的深度等级为L;S22.设定要查询的所有下级节点ID对应的序列号范围为N1-N2,沿着序列号N升序的方向在数据库表中查询深度等级,设定为L′;当L′≤L时,查询停止,L′对应的序列号设定为N′,N<N1,N2<N′;若查询到结束,L′始终大于L,则数据库表最后一行的序列号设定为N′,N<N1,N2≤N′;N1和N2之间的所有序列号对应的节点ID为要查询的节点ID。2.如权利要求1所述的一种实现快速查询树形结构数据指定节点下级的方法,其特征在于,步骤S1所述的深度优先遍历法是沿着树的深度遍历树的节点,尽可能深的搜索树的分支,每个节点只访问一次;先序遍历顺序是对...

【专利技术属性】
技术研发人员:黄启庆
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1