CN115840751B - 一种新型树状数据的编码方法 - Google Patents

一种新型树状数据的编码方法 Download PDF

Info

Publication number
CN115840751B
CN115840751B CN202310141391.8A CN202310141391A CN115840751B CN 115840751 B CN115840751 B CN 115840751B CN 202310141391 A CN202310141391 A CN 202310141391A CN 115840751 B CN115840751 B CN 115840751B
Authority
CN
China
Prior art keywords
node
code
cascade
level
codes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310141391.8A
Other languages
English (en)
Other versions
CN115840751A (zh
Inventor
张世昌
刘伟珊
刘宏亮
李铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Trusted Cloud Information Technology Research Institute
Shandong Jingweishengrui Data Technology Co ltd
Original Assignee
Shandong Trusted Cloud Information Technology Research Institute
Shandong Jingweishengrui Data Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Trusted Cloud Information Technology Research Institute, Shandong Jingweishengrui Data Technology Co ltd filed Critical Shandong Trusted Cloud Information Technology Research Institute
Priority to CN202310141391.8A priority Critical patent/CN115840751B/zh
Publication of CN115840751A publication Critical patent/CN115840751A/zh
Application granted granted Critical
Publication of CN115840751B publication Critical patent/CN115840751B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了一种新型树状数据的编码方法,涉及数据库技术领域,包括:设置树状数据的数据存储结构,包括字段:当前节点id、名称、节点层级、父节点id、编码和修改前的节点层级;设置树状数据中位于第一层级的节点的编码为固定编码0,层级为1;从第二层级开始,节点的层级=父节点层级+1,编码包括相拼接的编码前缀和临时编码,编码前缀为父节点编码,临时编码为从0001开始生成的一个四位数;若拼接编码前缀和临时编码得到的编码不存在于现有编码列表中,则可作为该节点的编码;将该节点的编码存入该节点的编码字段。本发明可动态生成树状数据中节点的编码,在修改当前节点的父节点时,可动态调整当前节点和级联子节点的编码和层级。

Description

一种新型树状数据的编码方法
技术领域
本发明属于计算机应用技术领域,尤其是涉及一种新型树状数据的编码方法。
背景技术
数据库设计树状结构时,都是通过节点记录直接父节点的方法,最终形成树状数据结构。基于这种树状数据结构,在数据库的各项操作过程中,都存在会比较麻烦而且效率非常低的情况。如:要检索或统计某一节点下的所有子节点,有以下几种方法:
第一种方法:先通过 parent_id 查询出所有子节点,然后依次查询子节点下所有下级节点。依次循环。
第二种方法是:通过定义存储过程,利用游标的下移查找所有节点。
第三种方法是:在标准的树形数据结构表的基础上增加一个 path 字段,该 path字段记录每个节点的路径。当执行数据查询时,根据所要查询的节点的 path 字段来匹配节点,查到该节点下所有节点。参见CN103853773A-一种Mysql数据库下树形数据结构的检索方法。
第四种方法是:在标准的树形数据结构表的基础上增加一个parents_ids字段,存储包括所有父节点的信息,每一父节点的信息通过特殊字符区分。参见CN104063413A-一种Mysql数据库树状结构及其快速检索方法。
以上几种做法均有缺陷,第 1 种方法不能够一次性取出目标数据,需要多次访问数据库,效率极低;第 2 种方法可读性差、难以维护、可移植能力差。第3种和第4种方法大大提高了检索效率,但是没有解决树形结构数据调整父节点后,其级联子节点的path和parents_ids的变化问题,并且由此问题还会影响级联查询和统计结果的正确性。
发明内容
针对上述问题,本发明提出了一种新型树状数据的编码方法,便于在对数据库进行节点新增、父节点修改、节点删除、子节点的查询和统计等操作时,提高数据库的操作效率。
为实现上述目的,本发明公开了一种新型树状数据的编码方法,包括:
设置树状数据的数据存储结构,包括字段:当前节点id、名称、节点层级、父节点id、编码和修改前的节点层级;
设置树状数据中位于第一层级的节点的所述编码为固定编码0,所述层级为1;
树状数据中,从第二层级开始,节点的层级=父节点层级+1,所述编码包括相拼接的编码前缀和临时编码,所述编码前缀为父节点编码,所述临时编码为从0001开始生成的一个四位数;
若拼接编码前缀和临时编码得到的编码不存在于现有编码列表中,则可作为该节点的编码;
将该节点的编码存入该节点的编码字段。
作为本发明的进一步改进,若拼接编码前缀和临时编码得到的编码存在于现有编码列表中,则将所述临时编码递增加1,得到新的临时编码;
拼接编码前缀和新的临时编码,再次判断是否存在于现有编码列表中,直至得到一个现有编码列表中不存在的编码,作为该节点的编码。
作为本发明的进一步改进,树状数据中新增节点时,新增节点的编码和层级生成过程包括:
查询已有的编码列表;
在所述编码列表中根据新增节点的父节点id查询父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该新增节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将父节点的层级加1得到该新增节点的层级。
作为本发明的进一步改进,在树状数据中对节点的父节点进行修改时,节点的编码和层级修改包括步骤:
查询已有的编码列表;
根据节点修改后的父节点id查询该父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接该父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将节点原来的层级赋予所述修改前的节点层级这一字段;
将父节点的层级加1得到节点现在的层级。
作为本发明的进一步改进,在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的层级,包括步骤:
设置d_value=修改前的节点层级-层级;
计算节点的d_value值,若d_value=0,则节点在父节点修改前后的层级一致,节点的所有级联子节点的层级无需修改;
若d_value¹0,则节点在父节点修改前后的层级发生变化,对节点的所有级联子节点的层级均需进行修改,包括将各级联子节点原来的层级赋予所述修改前的节点层级这一字段,各级联子节点的层级=修改前的节点层级-d_value。
作为本发明的进一步改进,在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的编码,包括步骤:
根据修改父节点前节点的编码作为前缀获取节点的所有级联子节点,形成级联子节点列表;
将修改父节点后得到的节点的编码作为新前缀;
根据节点的所述修改前的节点层级计算级联子节点的编码需截掉的位数;
遍历所述级联子节点列表,根据需截掉的位数对各级联子节点由级联子节点的编码前端对编码进行截断;
将级联子节点的编码阶段后的剩余部分与所述新前缀进行拼接,得到级联子节点的新的编码。
作为本发明的进一步改进,根据节点的所述修改前的节点层级计算级联子节点的编码需截掉的位数,包括:
节点的所述修改前的节点层级为n,则级联子节点的编码需截掉的位数计算公式为:
x=1+(n-1)*4;
其中,
1表示第一层级的固定编码0所占的位数;
n-1表示去除第一层级外的剩余层级数;
4表示去除第一层级外每层级增加的编码位数。
作为本发明的进一步改进,在树状数据中删除任一节点时,还需删除该节点的所有级联子节点,包括步骤:
在已有编码列表中以该节点的编码为前缀查询该节点的所有级联子节点,形成级联子节点的id列表;
遍历级联子节点的id列表,逐个删除该节点的级联子节点。
作为本发明的进一步改进,可通过节点的编码查询节点的所有级联子节点和指定层级的级联子节点;
查询节点的所有级联子节点,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,形成所有级联子节点数据列表;
查询节点的指定层级的级联子节点,包括:
在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,形成指定层级级联子节点数据列表。
作为本发明的进一步改进,可通过节点的编码统计节点的所有级联子节点的数量及指定层级的级联子节点的数量,包括:
统计节点的所有级联子节点的数量,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,统计所有级联子节点的数量;
统计节点的指定层级的级联子节点的数量,包括:
在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,统计指定层级的级联子节点的数量。
与现有技术相比,本发明的有益效果为:
本发明提供了一种树状数据的编码方法,通过设置节点的编码与父节点编码的关系,设置节点层级与父节点层级的关系,可动态生成树状数据中节点的编码及层级,也便于通过该编码对数据库中树状数据的各项操作,提高操作效率。
本发明的编码方法支持修改父级节点,对本节点及本节点的级联子节点根据指定的父节点重新编码,实现修改父节点后数据级联查询和分层级统计的正确性,便于进行级联删除、检索和统计,增强 sql 语句的可读性、维护性、可移植能力。
本发明在修改当前节点的父节点时,可动态调整当前节点和级联子节点的编码和层级,在新增节点时,可动态生成新增节点的编码和层级,在删除节点时,可动态删除该节点及该节点的所有级联子节点,各操作均动态完成,操作可靠且效率高。
本发明在对某节点下的所有级联子节点进行检索或统计时,可也动态完成,且可直接查询或统计节点下指定层级的级联子节点,操作简单、准确性到、操作效率高。
附图说明
图1为本发明一种实施例公开的新型树状数据的编码方法流程图;
图2为本发明一种实施例公开的基于新型树状数据的编码方法在新增节点时,生成新增节点编码和层级的流程图;
图3为本发明一种实施例公开的基于新型树状数据的编码方法在修改节点的父节点时,生成节点的编码和层级的流程图;
图4为本发明一种实施例公开的基于新型树状数据的编码方法在修改节点的父节点时,修改节点的级联子节点的编码和层级的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1所示,本发明公开的一种新型树状数据的编码方法,包括:
S1、设置树状数据的数据存储结构,包括字段:当前节点id、名称、节点层级、父节点id、编码和修改前的节点层级;
其中,数据存储结构如表1所示:
表1
具体的,
id字段存储当前节点的id;
parent_id字段存储当前节点的父节点的id;
level字段存储当前节点的层级,等于父节点的层级加1;
his_level存储当前节点修改父节点前的层级;
code存储当前节点的编码;
name存储节点名称。
S2、设置树状数据中位于第一层级的节点的编码为固定编码0,层级为1,即:level=1;
S3、树状数据中,从第二层级开始,节点的层级=父节点层级+1,编码包括相拼接的编码前缀和临时编码,编码前缀为父节点编码,临时编码为从0001开始生成的一个四位数;
S4、若拼接编码前缀和临时编码得到的编码不存在于现有编码列表中,则可作为该节点的编码;
其中,
拼接编码前缀和临时编码得到的编码时,编码前缀和临时编码直接首尾拼接即可,即:
code=编码前缀+临时编码;
进一步的,
若拼接编码前缀和临时编码得到的编码存在于现有编码列表中,则将临时编码递增加1,得到新的临时编码;
拼接编码前缀和新的临时编码,再次判断是否存在于现有编码列表中,直至得到一个现有编码列表中不存在的编码,作为该节点的编码。
S5、将该节点的编码存入该节点的编码字段。
应用本发明的树状数据编码方法的数据库,在对数据库进行各项操作时,操作简单快捷、可靠,具体包括:
(1)如图2所示,树状数据中新增节点时,新增节点的编码和层级生成过程包括:
查询已有的编码列表;
在编码列表中根据新增节点的父节点id查询父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该新增节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将父节点的层级加1得到该新增节点的层级;
最后,令新增节点的修改前的节点层级等于新增节点的层级,即:his_level=level。
(2)在树状数据中对节点的父节点进行修改时,包括三步:
第一步,如图3所示,修改节点的编码和层级,其中,节点的level和his_level满足关系:his_level=当前节点的level、level=父节点level+1,节点的编码和层级修改包括步骤:
查询已有的编码列表;
根据节点修改后的父节点id查询该父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接该父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将节点原来的层级赋予修改前的节点层级这一字段;
将父节点的层级加1得到节点现在的层级。
第二步,如图4所示,在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的层级,包括步骤:
设置d_value=修改前的节点层级-层级;
计算节点的d_value值,若d_value=0,则节点在父节点修改前后的层级一致,节点的所有级联子节点的层级无需修改;
若d_value¹0,则节点在父节点修改前后的层级发生变化,对节点的所有级联子节点的层级均需进行修改,包括:
1)将各级联子节点原来的层级赋予修改前的节点层级这一字段,即:his_level=level
2)各级联子节点的层级=修改前的节点层级-d_value,即:level=his_level-d_value。
第三步、如图4所示,在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的编码,包括步骤:
根据修改父节点前节点的编码作为前缀获取节点的所有级联子节点,形成级联子节点列表;
将修改父节点后得到的节点的编码作为新前缀;
根据节点的修改前的节点层级计算级联子节点的编码需截掉的位数;
遍历级联子节点列表,根据需截掉的位数对各级联子节点由级联子节点的编码前端对编码进行截断;
将级联子节点的编码阶段后的剩余部分与新前缀进行拼接,得到级联子节点的新的编码。
其中,
根据节点的修改前的节点层级计算级联子节点的编码需截掉的位数,包括:
设节点的修改前的节点层级为n,则级联子节点的编码需截掉的位数计算公式为:
x=1+(n-1)*4;
其中,
1表示第一层级的固定编码0所占的位数;
n-1表示去除第一层级外的剩余层级数;
4表示去除第一层级外每层级增加的编码位数。
(3)在树状数据中删除任一节点时,还需删除该节点的所有级联子节点,包括步骤:
在已有编码列表中以该节点的编码为前缀查询该节点的所有级联子节点,形成级联子节点的id列表;
遍历级联子节点的id列表,逐个删除该节点的级联子节点。
(4)可通过节点的编码查询节点的所有级联子节点和指定层级的级联子节点;
查询节点的所有级联子节点,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,形成所有级联子节点数据列表;
查询节点的指定层级的级联子节点,包括:
在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,形成指定层级级联子节点数据列表。
(5)可通过节点的编码统计节点的所有级联子节点的数量及指定层级的级联子节点的数量,包括:
统计节点的所有级联子节点的数量,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,统计所有级联子节点的数量;
统计节点的指定层级的级联子节点的数量,包括:
在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,统计指定层级的级联子节点的数量。
实施例:
以在树状数据中新增节点为例,指定新增节点的父节点id为16,新增节点的编码和层级生成过程包括:
步骤1、查询已有的编码列表;
步骤2、在编码列表中根据新增节点的父节点id(16)查询得到父节点的编码为00015,层级为2;
步骤3、从0001开始生成一个四位数作为临时编码,得到临时编码0036,拼接父节点的编码和临时编码得到完整编码,完整编码为000150036;
步骤4、判断该完整编码是否存在于现有编码列表中,结果为存在;
步骤5、将临时编码递增加1,得到临时编码0037,与父节点编码拼接得到完整编码为000150037,
步骤6、判断新得到的完整编码是否存在于现有编码列表,结果为不存在,将得到的新的完整编码000150037作为该新增节点的编码;
步骤7、将父节点的层级加1得到该新增节点的层级,即新增节点的层级:level=2+1=3;
步骤8、令新增节点的修改前的节点层级等于新增节点的层级,即:his_level=level=3。
本发明的优点:
本发明提供了一种树状数据的编码方法,通过设置节点的编码与父节点编码的关系,设置节点层级与父节点层级的关系,可动态生成树状数据中节点的编码及层级,也便于通过该编码对数据库中树状数据的各项操作,提高操作效率。
本发明的编码方法支持修改父级节点,对本节点及本节点的级联子节点根据指定的父节点重新编码,实现修改父节点后数据级联查询和分层级统计的正确性,便于进行级联删除、检索和统计,增强 sql 语句的可读性、维护性、可移植能力。
本发明在修改当前节点的父节点时,可动态调整当前节点和级联子节点的编码和层级,在新增节点时,可动态生成新增节点的编码和层级,在删除节点时,可动态删除该节点及该节点的所有级联子节点,各操作均动态完成,操作可靠且效率高。
本发明在对某节点下的所有级联子节点进行检索或统计时,可也动态完成,且可直接查询或统计节点下指定层级的级联子节点,操作简单、准确性到、操作效率高。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种新型树状数据的编码方法,其特征在于,包括:
设置树状数据的数据存储结构,包括字段:当前节点id、名称、节点层级、父节点id、编码和修改前的节点层级;
设置树状数据中位于第一层级的节点的所述编码为固定编码0,所述节点层级为1;
树状数据中,从第二层级开始,节点的层级=父节点层级+1,所述编码包括相拼接的编码前缀和临时编码,所述编码前缀为父节点编码,所述临时编码为从0001开始生成的一个四位数;
若拼接编码前缀和临时编码得到的编码不存在于现有编码列表中,则可作为该节点的编码;
将该节点的编码存入该节点的编码字段;
在树状数据中对节点的父节点进行修改时,节点的编码和层级修改包括步骤:
查询已有的编码列表;
根据节点修改后的父节点id查询该父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接该父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将节点原来的层级赋予所述修改前的节点层级这一字段;
将父节点的层级加1得到节点现在的层级;
在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的编码,包括步骤:
根据修改父节点前节点的编码作为前缀获取节点的所有级联子节点,形成级联子节点列表;
将修改父节点后得到的节点的编码作为新前缀;
根据节点的所述修改前的节点层级计算级联子节点的编码需截掉的位数;
遍历所述级联子节点列表,根据需截掉的位数对各级联子节点由级联子节点的编码前端对编码进行截断;
将级联子节点的编码阶段后的剩余部分与所述新前缀进行拼接,得到级联子节点的新的编码。
2.根据权利要求1所述的新型树状数据的编码方法,其特征在于:若拼接编码前缀和临时编码得到的编码存在于现有编码列表中,则将所述临时编码递增加1,得到新的临时编码;
拼接编码前缀和新的临时编码,再次判断是否存在于现有编码列表中,直至得到一个现有编码列表中不存在的编码,作为该节点的编码。
3.根据权利要求1所述的新型树状数据的编码方法,其特征在于:树状数据中新增节点时,新增节点的编码和层级生成过程包括:
查询已有的编码列表;
在所述编码列表中根据新增节点的父节点id查询父节点的编码和层级;
从0001开始生成一个四位数作为临时编码,拼接父节点的编码和临时编码得到完整编码;
判断该完整编码是否存在于现有编码列表中,若不存在,则将该完整编码作为该新增节点的编码;
若存在,则循环执行将临时编码递增加1、与父节点编码拼接得到完整编码、判断完整编码是否存在于现有编码列表,直至拼接得到的完整编码不存在于现有编码列表中,将得到的完整编码作为该新增节点的编码;
将父节点的层级加1得到该新增节点的层级。
4.根据权利要求1所述的新型树状数据的编码方法,其特征在于:在树状数据中对节点的父节点进行修改后,还需修改节点的所有级联子节点的层级,包括步骤:
设置d_value=修改前的节点层级-修改后的节点层级;
计算节点的d_value值,若d_value=0,则节点在父节点修改前后的层级一致,节点的所有级联子节点的层级无需修改;
,则节点在父节点修改前后的层级发生变化,对节点的所有级联子节点的层级均需进行修改,包括将各级联子节点原来的层级赋予所述修改前的节点层级这一字段,各级联子节点的层级=修改前的节点层级-d_value。
5.根据权利要求1所述的新型树状数据的编码方法,其特征在于:根据节点的所述修改前的节点层级计算级联子节点的编码需截掉的位数,包括:节点的所述修改前的节点层级为n,则级联子节点的编码需截掉的位数计算公式为:其中,
1表示第一层级的固定编码0所占的位数;
n-1表示去除第一层级外的剩余层级数;
4表示去除第一层级外每层级增加的编码位数。
6.根据权利要求1所述的新型树状数据的编码方法,其特征在于:在树状数据中删除任一节点时,还需删除该节点的所有级联子节点,包括步骤:
在已有编码列表中以该节点的编码为前缀查询该节点的所有级联子节点,形成级联子节点的id列表;
遍历级联子节点的id列表,逐个删除该节点的级联子节点。
7.根据权利要求1所述的新型树状数据的编码方法,其特征在于:可通过节点的编码查询节点的所有级联子节点和指定层级的级联子节点;
查询节点的所有级联子节点,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,形成所有级联子节点数据列表;
查询节点的指定层级的级联子节点,包括:在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,形成指定层级级联子节点数据列表。
8.根据权利要求1所述的新型树状数据的编码方法,其特征在于:可通过节点的编码统计节点的所有级联子节点的数量及指定层级的级联子节点的数量,包括:
统计节点的所有级联子节点的数量,包括:
在已有编码列表中,以该节点的编码为前缀查询该节点的所有级联子节点,统计所有级联子节点的数量;
统计节点的指定层级的级联子节点的数量,包括:
在已有编码列表中,查询以该节点的编码为前缀且层级等于指定层级的级联子节点,统计指定层级的级联子节点的数量。
CN202310141391.8A 2023-02-21 2023-02-21 一种新型树状数据的编码方法 Active CN115840751B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310141391.8A CN115840751B (zh) 2023-02-21 2023-02-21 一种新型树状数据的编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310141391.8A CN115840751B (zh) 2023-02-21 2023-02-21 一种新型树状数据的编码方法

Publications (2)

Publication Number Publication Date
CN115840751A CN115840751A (zh) 2023-03-24
CN115840751B true CN115840751B (zh) 2023-05-12

Family

ID=85579951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310141391.8A Active CN115840751B (zh) 2023-02-21 2023-02-21 一种新型树状数据的编码方法

Country Status (1)

Country Link
CN (1) CN115840751B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680252A (zh) * 2023-06-13 2023-09-01 智研汇(上海)科技有限公司 树形数据结构及其节点批量移动方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134828A (ja) * 2008-12-08 2010-06-17 Toshiba Corp データベース合成装置、文字認識支援システム、及びデータベースの合成方法
CN115017161A (zh) * 2022-06-29 2022-09-06 城云科技(中国)有限公司 一种结合虚拟dom更新树形数据结构方法、装置及应用

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902811B (zh) * 2012-10-19 2016-09-14 北京金和软件股份有限公司 一种快速生成树结构的数据库设计方法
CN103853773A (zh) * 2012-12-04 2014-06-11 厦门亿联网络技术股份有限公司 一种Mysql数据库下树形数据结构的检索方法
CN103645986B (zh) * 2013-11-29 2016-08-17 北京广利核系统工程有限公司 一种编译器的可视化语法树的生成方法和重构方法
CN104809190B (zh) * 2015-04-21 2018-07-31 浙江大学 一种树形结构数据的数据库存取方法
CN109684336A (zh) * 2018-12-27 2019-04-26 普元信息技术股份有限公司 基于大数据应用实现树形数据表高效检索与排序功能的系统及方法
CN114118944A (zh) * 2021-11-04 2022-03-01 厦门市美亚柏科信息股份有限公司 一种取证实验室分级管理方法、终端设备及存储介质
CN115292344A (zh) * 2022-08-03 2022-11-04 中国建设银行股份有限公司 数据字典构建方法、装置、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010134828A (ja) * 2008-12-08 2010-06-17 Toshiba Corp データベース合成装置、文字認識支援システム、及びデータベースの合成方法
CN115017161A (zh) * 2022-06-29 2022-09-06 城云科技(中国)有限公司 一种结合虚拟dom更新树形数据结构方法、装置及应用

Also Published As

Publication number Publication date
CN115840751A (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
US8396852B2 (en) Evaluating execution plan changes after a wakeup threshold time
US6105018A (en) Minimum leaf spanning tree
US8700605B1 (en) Estimating rows returned by recursive queries using fanout
US9576011B2 (en) Indexing hierarchical data
EP1234258B1 (en) System for managing rdbm fragmentations
US10769124B2 (en) Labeling versioned hierarchical data
US20110137890A1 (en) Join Order for a Database Query
US8694510B2 (en) Indexing XML documents efficiently
CN107092659A (zh) 一种通用的树形结构存储解析方法
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
US20050240570A1 (en) Partial query caching
US11789923B2 (en) Compression units in an index block
CN110928882B (zh) 一种基于改进红黑树的内存数据库索引方法及系统
US10275486B2 (en) Multi-system segmented search processing
US10417208B2 (en) Constant range minimum query
EP3844639A1 (en) System and method for facilitating efficient indexing in a database system
CN106874425B (zh) 基于Storm的实时关键词近似搜索算法
US20120096054A1 (en) Reading rows from memory prior to reading rows from secondary storage
CN115840751B (zh) 一种新型树状数据的编码方法
US10303704B2 (en) Processing a data set that is not organized according to a schema being used for organizing data
JP4247135B2 (ja) 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法
CN111708805A (zh) 数据查询方法、装置、电子设备及存储介质
US10235100B2 (en) Optimizing column based database table compression
CN110263108B (zh) 一种基于道路网的关键词Skyline模糊查询方法及系统
CN111782663A (zh) 一种提升聚合查询效率的聚合索引结构及聚合索引方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant