[发明专利]一种高效维护节点全路径的方法、装置及应用有效
申请号: | 202210646839.7 | 申请日: | 2022-06-09 |
公开(公告)号: | CN114896271B | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 李圣权;欧阳刚;乐耀东;陈刚;毛云青 | 申请(专利权)人: | 城云科技(中国)有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/28;G06F16/23 |
代理公司: | 杭州汇和信专利代理有限公司 33475 | 代理人: | 董超 |
地址: | 310052 浙江省杭州市滨江区长*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 高效 维护 节点 路径 方法 装置 应用 | ||
本申请提出了高效维护节点全路径的方法、装置及应用,包括以下步骤获取变更节点;执行第一SQL语句将所述变更节点及所述变更节点的所有子节点的节点全路径设定为空,并返回受影响的节点数量;若受影响的节点数量不为0,执行第二SQL语句初始化所述节点全路径的数据;若所述节点全路径内含有识别通识符,执行第三SQL语句补全含有识别通识符号的所述节点全路径的数据,通过三条SQL的组合实现高效且扩展场景多的节点全路径的维护方法。
技术领域
本申请涉及数据处理领域,特别是涉及高效维护节点全路径的方法、装置及应用。
背景技术
在关系型数据库用于存储树形结构数据的表中往往会增加一个字段用于存储节点全全路径,一般用path代表该字段,path字段的内容为:本节点及其以上所有节点的ID按照父节点ID+分隔符+子节点ID的方式排列后拼接而成一个字符串。path会为程序进行快速检索时带来极大的效率提升和很多便利。但当树形数据发生变更后,维护path的内容将是一份额外的工作,不恰当或者低效的维护方法将会造成path内容和实际情况不能实时的保持一致或者错误。
通常的做法中都是在数据库存储过程对path字段的内容进行更新,这种方法会带来难以调试、可移植性差、以及随着数据量的增加或者数据结构的变化,原来存储过程选择的执行计划不是最优的,需手动干预或者重新编译的缺点。
另外一种做法是通过程序读取出数据库的数据,处理后再更新入数据库,这种方法比较适用单条节点记录的更新,面对批量更新代码逻辑复杂会大幅上升;并且要获取某个节点的所有父节点需要程序多次连接数据库进行递归的查询,效率低下。
发明内容
本申请实施例提供了一种高效维护节点全路径的方法、装置及应用,利用SQL语句以及内置函数对节点的全路径进行高效地新增或更新。
第一方面,本申请实施例提供了一种高效维护节点全路径的方法,对存储表内的节点全路径进行维护,包括以下步骤:获取变更节点;执行第一SQL语句将所述变更节点及所述变更节点的所有子节点的节点全路径设定为空,并返回受影响的节点数量;若受影响的节点数量不为0,执行第二SQL语句初始化所述节点全路径的数据;若所述节点全路径内含有识别通识符,执行第三SQL语句补全含有识别通识符号的所述节点全路径的数据。
第二方面,本申请实施例提供了一种高效维护节点全路径的装置,包括:节点获取单元,用于获取变更节点;第一SQL语句执行单元,用于执行第一SQL语句将所述变更节点及所述变更节点的所有子节点的节点全路径设定为空,并返回受影响的节点数量;第二SQL语句执行单元,用于若受影响的节点数量不为0,执行第二SQL语句初始化所述节点全路径的数据;第三SQL语句执行单元,用于若所述节点全路径内含有识别通识符,执行第三SQL语句补全含有识别通识符号的所述节点全路径的数据
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行任一所述的高效维护节点全路径的方法。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据任一所述的高效维护节点全路径的方法。
本发明的主要贡献和创新点如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于城云科技(中国)有限公司,未经城云科技(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210646839.7/2.html,转载请声明来源钻瓜专利网。