CN106446086A - 用于云计算环境的树结构操作方法和系统 - Google Patents
用于云计算环境的树结构操作方法和系统 Download PDFInfo
- Publication number
- CN106446086A CN106446086A CN201610815864.8A CN201610815864A CN106446086A CN 106446086 A CN106446086 A CN 106446086A CN 201610815864 A CN201610815864 A CN 201610815864A CN 106446086 A CN106446086 A CN 106446086A
- Authority
- CN
- China
- Prior art keywords
- node
- father
- sequence
- destination
- marking
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
Abstract
本发明涉及一种用于云计算环境的树结构操作方法和系统,上述用于云计算环境的树结构操作方法,包括如下步骤:根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点‑父节点序列;所述节点‑父节点序列记录节点、节点的父节点序列;获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点‑父节点序列,根据操作的内容更新所述节点‑父节点序列;按照更新后的节点‑父节点序列更改所述树结构。本发明提高的用于云计算环境的树结构操作方法和系统无需进行节点的递归查询,具有较高的操作效率。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种用于云计算环境的树结构操作方法和系统。
背景技术
云计算应用的不断深入和大数据处理需求的不断扩大,通过计算资源共享池提供网络化服务的云计算技术得到了普及,云计算数据中心就是云计算在存储领域的产物。在云计算数据中心,数据库应用是云计算环境中一种非常重要的应用。为了使数据层级展现更加明显,树结构展现的使用越来越多,而树结构表的数据在增删改查及统计时,经常使用递归操作。在对云计算环境下采用树状结构的节点数据操作时,由于递归操作效率低下,导致对树结构进行任何一个操作都会对其中的节点数据进行多次频繁调用,尤其是对节点数据进行层级统计时,需要进行多次递归查询,导致操作树结构中相关节点数据的效率低。
发明内容
基于此,有必要针对传统方案操作树结构中相关节点数据效率低的技术问题,提供一种用于云计算环境的树结构操作方法和系统。
一种用于云计算环境的树结构操作方法,包括如下步骤:
根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
按照更新后的节点-父节点序列更改所述树结构。
一种用于云计算环境的树结构操作系统,包括:
建立模块,用于根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
获取模块,用于获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
更新模块,用于按照更新后的节点-父节点序列更改所述树结构。
上述用于云计算环境的树结构操作方法和系统,可以建立包括节点-父节点序列的节点关系表,通过其中的节点-父节点序列可以获取相应节点的层级、父节点等信息,从而利用上述节点关系表可以对相应的节点进行增加、删除、编辑以及移动等操作,从而实现对相应树结构的操作,上述针对树结构的各类操作,无需进行节点的递归查询,具有较高的操作效率。
附图说明
图1为一个实施例的用于云计算环境的树结构操作方法流程图;
图2为一个实施例的树结构示意图;
图3为一个实施例的用于云计算环境的树结构操作系统结构示意图。
具体实施方式
下面结合附图对本发明的用于云计算环境的树结构操作方法和系统的具体实施方式作详细描述。
参考图1,图1所示为一个实施例的用于云计算环境的树结构操作方法流程图,包括如下步骤:
S10,根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
上述树结构可以如图2所示,包括6个节点,上述6个节点分为4层。树结构中的节点信息可以包括节点标识符(名称或者序号等可以唯一表示节点的标识符)、层级、节点的父节点以及节点的子节点等信息,如图2所示,节点4的节点信息包括:节点标识符为4,层级为3,父节点为2,子节点为6。图2所示树结构的节点关系表可以如表1所示,其包括节点名称(name)、节点标识符(id)、节点层级(pid)以及节点-父节点序列(node_relation)。上述节点-父节点序列包括记录节点、节点的父节点、父节点的父节点,以此类推直至最后一个父节点为树结构的根节点的序列,即记录节点以及节点的所有父节点;通常情况下,子节点记录在节点-父节点序列的后面,父节点记录在节点-父节点序列的前面。其中,各个节点通过相应的节点标识符在上述node_relation中表达,两个结点(节点与相应的父节点)之间通过符号“#”进行间隔,根节点之前,以及最后一个子节点后均可以记载符号“#”,如节点1的node_relation为#1#,节点2的node_relation为#1#2#,节点3的node_relation为#1#3#,节点4的node_relation为#1#2#4#,节点5的node_relation为#1#2#5#,节点6的node_relation为#1#3#6#等等。
表1节点关系表
id | pid | node_relation | name |
1 | 0 | #1# | 节点1 |
2 | 1 | #1#2# | 节点2 |
3 | 1 | #1#3# | 节点3 |
4 | 2 | #1#2#4# | 节点4 |
5 | 2 | #1#2#5# | 节点5 |
6 | 3 | #1#3#6# | 节点6 |
S20,获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
上述步骤中,若需要对某个节点进行操作(如删除、增加节点等),先获取上述进行操作的节点所对应的节点标识符,利用上述节点标识符在节点关系表中查找出进行操作的节点所对应的节点-父节点序列,以便对上述节点-父节点序列中的节点进行相应的操作,以实现树结构中对应节点的操作。
S30,按照更新后的节点-父节点序列更改所述树结构。
上述步骤中,依据操作内容对节点-父节点序列进行更新后,再根据更新后的节点-父节点序列更改树结构中的节点,使节点-父节点序列中的更新操作映射至相应的树结构,以实现对树结构的操作。
本实施例提供的用于云计算环境的树结构操作方法,可以建立包括节点-父节点序列的节点关系表,通过其中的节点-父节点序列可以获取相应节点的层级、父节点等信息,从而利用上述节点关系表可以对相应的节点进行增加、删除、编辑以及移动等操作,从而实现对相应树结构的操作,上述针对树结构的各类操作,无需进行节点的递归查询,具有较高的操作效率。
在一个实施例中,上述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程可以包括:
获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述节点标识符的所有节点-父节点序列;
根据操作的内容从查找的所有节点-父节点序列中识别待操作节点-父节点序列;
针对所述待操作节点-父节点序列执行操作。
本实施例中,可以先确定需要进行操作(待操作)的目标节点,获取上述待操作的目标节点对应的目标节点标识符,根据上述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列,获取操作的内容,根据上述操作的内容从所有节点-父节点序列中识别待操作节点-父节点序列,比如,若操作的内容为增加节点,则待增加节点的节点标识符位于最后的节点-父节点序列为待增加节点的节点-父节点序列;若操作的内容为删除节点,则包括待删除的节点标识符的所有节点-父节点序列为待删除节点对应的节点-父节点序列。识别待操作的节点-父节点序列后,针对上述待操作的节点-父节点序列进行操作内容的更新,便可以将上述待操作节点-父节点序列更新为执行操作后的目标节点-父节点序列。
在一个实施例中,上述操作的内容可以为增加节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行增加节点的节点标识符,根据所述节点标识符在所述节点关系表中查找包括所述节点标识符的所有节点-父节点序列;
从查找的所有节点-父节点序列中识别节点标识符在设定位置的待操作节点-父节点序列;
对待操作节点-父节点序列中设定位置处的节点增加一个子节点。
操作内容为增加节点时,所增加的节点在目标节点后,因而,只需要获取进行增加节点的目标节点标识符在node_relatio中设定位置(最后的位置)的node_relatio。上述设定位置可以根据相应节点-父节点序列的结构进行设置,如表1所示,若node_relation中,父节点在前,子节点在后,则上设定位置可以设置为node_relation中的最后一个节点标识符位置,比如#1#3#6#中节点标识符6所在的位置。
本实施例在增加节点的过程中,node_relation只需要取此节点的父节点的node_relation再加#号和此数据的id加#号,如果没有上级节点,则node_relation为#号加此数据的id再加#号。例如在节点3下增加一个节点,增加的节点id为7,则node_relation为#1#3#7#。
在一个实施例中,操作的内容可以为删除节点;所述节点-父节点序列中父节点在前,子节点在后;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行删除节点的目标节点标识符,根据所目标述节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别将所有操作节点-父节点序列中的目标节点标识符以及目标节点标识符之后的节点标识符进行删除。
上述操作的内容为删除节点,即将目标节点标识符以及上述目标节点标识符之后的节点标识符从所有节点-父节点序列中进行删除,此时所有节点-父节点序列为待操作的节点-父节点序列。
本实施例在删除节点的过程中,为保证删除此节点及此节点下的所有节点,只需要删除node_relation中包含加相应节点标识符的node_relation的所有数据,无需进行递归删除。例如删除节点2及以下所有节点时,只需执行DELETE FROM t_tree WHERE t_tree.node_relation like'#1#2#%';(#1#2#为节点2的node_relation)sql语句就可以将节点2以下的所有节点都删除。而使用普通树结构表进行删除节点2及以下所有节点时,需要进行多次递归删除,需要对数据库进行多次操作。
在一个实施例中,上述操作的内容可以为编辑节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行编辑节点的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别将所有操作节点-父节点序列中的目标节点标识符替换为设定标识符。
上述设定标识符为相应编辑内容所对应的标识符,将所有操作节点-父节点序列中的目标节点标识符替换为设定标识符表明,上述所有操作节点-父节点序列中的目标节点标识已实现相应的编辑。
上述编辑过程中,将所有node_relation中含有目标节点标识符的node_relation的目标节点标识符替换为编辑后的设定标识符,以对上述所有node_relation进行更新。
在一个实施例中,上述操作的内容为移动节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行待移动的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别在所有节点-父节点序列中,将所述目标节点标识符移动至目标位置。
上述目标位置即为移动后的位置,例如将节点3移动到节点2下,只需要执行UPDATE t_tree SET node_relation=replace(node_relation,'#1#3#','#1#2#3#'),(#1#3#为节点3的node_relation,'#1#2#3#为节点2的node_relation加节点3的id加#号)这一sql语句就可以把节点2的所有节点统一移动到节点3下。
在一个实施例中,上述用于云计算环境的树结构操作方法,还可以包括:
获取各个节点-父节点序列的节点标识符个数,根据最大的节点标识符个数确定所述树结构的层级。
各个节点-父节点序列对应的节点标识符个数中节点标识符个数的最大值等于树结构的层数,从而最大的节点标识符个数即为所述树结构的层级数。
在一个实施例中,上述用于云计算环境的树结构操作方法,还可以包括:
获取目标节点标识符对应的任一个节点-父节点序列;
根据查找的节点-父节点序列确定目标节点标识符所在的层级。
此处的目标节点标识符为待查询的节点标识符(待查询标识符),上述目标节点标识符所在的层级可以为相应节点-父节点序列中目标节点标识符的位置数,若目标节点标识符在相应节点-父节点序列的第2个符位置,则上述目标节点标识符的层级为2
在一个实施例中,上述用于云计算环境的树结构操作方法,还可以包括:
获取目标节点标识符对应的任一个节点-父节点序列;
根据查找的节点-父节点序列确定目标节点标识符的所有上级节点。
目标节点标识符(待查询标识符)的所有上级节点为包括目标节点标识符的任一个节点-父节点序列中,在目标节点标识符之前而所有节点标识符。
作为一个实施例,在查询每个层级的所有节点时,也可以统计node_relation中#的个数,就可以知道所有数据(节点)层级,无需递归查询,具有较高的查询效率。例如查询层级为3的所有节点只需要执行:select*from t_tree where length(node_relation)-length(replace(node_relation,'#',”))=(3+1);sql;就可以查询出层级为3的所有节点。
查询单个节点层级,点击节点-父节点序列中任意一个节点标识符,可根据node_relation直接显示出它的所有上级,无需递归查询,统计相应节点的父节点时也是如此。例如查询节点3的层级,只需要执行select length(node_relation)-length(replace(node_relation,'#',”))-1AS NUM from t_tree where t_tree.id='3';sql;便可以统计此节点的父节点。
查询单个节点的所有子节点,例如查询节点2下的所有节点只需执行select*fromt_tree where t_tree.node_relation like'#1#2#%';(#1#2#为节点2的node_relation)sql;就可以查询出此节点下的所有节点。
查询单个节点的所有父节点时,只需要查看此节点所对应的node_relation,就可以直观的看到此节点的所有父节点。
在进行每个层级的所有节点,单个节点的所有子节点的统计时,中需要将select*改为select count(*);即可。
表2树结构表
id | pid | name |
1 | 0 | 节点1 |
2 | 1 | 节点2 |
3 | 1 | 节点3 |
4 | 2 | 节点4 |
5 | 2 | 节点5 |
6 | 3 | 节点6 |
在云计算环境的实际应用中,如果采用传统的设计方法,即表2所示的普通树结构表设计方式,包括节点名称(name)、节点标识符(id)、节点层级(pid);树结构表的数据在查询及统计时需要迭代操作,而采用如表1所示树结构的节点关系表,其中数据在查询及统计时需要迭代操作不需要迭代操作。如果将表中的6条数据按照表2,可能会影响到查询效率和程序运行的速率。如何存储数据,针对上述树型数据库存储结构的设计,本发明做了如下的实验测试:
(1)测试软硬件条件
软件:操作系统为Windows 2007,数据库为Mysql.
硬件:工作站为Dell 3020,CPU为3.60GHz,内存为8GB
(2)测试方案设计思想
在数据需要层级展现时,在表中添加node_relation字段,用#1#2#的方式展示层级关系。
(3)数据库设计
为了验证本文的设计方案,使用表2、表1进行实验,并在表1中添加字段node_relation.
(4)测试步骤和结果
插入6条数据
表2SQL:
insert into c_tree values('1','0','节点1');
insert into c_tree values('2','1','节点2');
insert into c_tree values('3','1','节点3');
insert into c_tree values('4','2','节点4');
insert into c_tree values('5','2','节点5');
insert into c_tree values('6','3','节点6');
表1SQL:
insert into t_tree values('1','0','节点1','#1#');
insert into t_tree values('2','1','节点2','#1#2#');
insert into t_tree values('3','1','节点3','#1#3#');
insert into t_tree values('4','2','节点4','#1#2#4#');
insert into t_tree values('5','2','节点5','#1#2#5#');
insert into t_tree values('6','3','节点6','#1#3#6#');
1)在表2中插入6条数据:总用时约0.172s。
2)在表1中插入6条数据:总用时约0.187s。
实验结论:对插入效率几乎没有影响。
删除1条数据
表2SQL:
delete from c_tree where id='6';
表1SQL:
delete form t_tree t where id='6'
1)在表2中删除1条数据:用时约0.029s。
2)在表1中删除1条数据:用时约0.026s。
实验结论:对删除效率几乎没有影响。
根据层级关系查询所有数据
表2SQL:
--查询一级
select*from c_tree c where c.pid='0';
--查询二级节点为1的子节点
select*from c_tree c where c.pid='1';
--查询三级节点为2的子节点
select*from c_tree c where c.pid='2';
--查询四级节点为4的子节点
select*from c_tree c where c.pid='4';
--查询四级节点为5的子节点
select*from c_tree c where c.pid='5';
--查询三级节点为3的子节点
select*from c_tree c where c.pid='3';
--查询四级节点为6的子节点
select*from c_tree c where c.pid='6';
表1SQL:
--一次查询出所有,并以树结构顺序展现
select*from t_tree t ORDER BY t.node_relation;
1)从表2中根据层级关系查询一组具有层级关系的数据,总用时约0.45s。
2)从表1中根据层级关系查询一组具有层级关系的数据,总用时约0.07s。
实验结论:对表1的查询效率明显提升,如果节点层级更多,表2中的效率会明显降低;表1中的效率几乎未受影响。
统计三级节点数据
表2SQL:
--查询一级
select*from c_tree c where c.pid='0';
--查询二级
select*from c_tree c where c.pid='1';
--统计三级级节点数据
select count(*)from c_tree c where c.pid in('2','3');
表1SQL:
--统计所有三级节点数据
select length(node_relation)-length(replace(node_relation,'#',”))-1ASNUM from t_tree where t_tree.id='3'
1)从表2中根据层级关系查询三级节点的数据,总用时约0.45s。
2)从表1中根据层级关系查询三级节点的数据,总用时约0.15s。
实验结论:对表1的查询效率明显提升,如果节点层级更多,表2中的效率会明显降低。表1中的效率几乎未受影响。
查询id为2所有子节点:
表2SQL:
--查询节点2的子节点
select*from c_tree c where c.pid='2';
--查询节点4下的子节点
select*from c_tree c where c.pid='4';
--查询节点5下的子节点
select*from c_tree c where c.pid='5';
表1SQL:
--查询节点二下面的所有子节点:
select*from t_tree where t_tree.node_relation like'#1#2#%';
1)从表2中根据层级关系查询三级节点的数据,用时约0.36s。
2)从表1中根据层级关系查询三级节点的数据,用时约0.18s。
实验结论:对表1的查询效率明显提升,如果节点层级更多,表2中的效率会明显降低。表1中的效率几乎未受影响。
从以上实验可知,表中添加node_relation字段提高了查询效率。从结果对比发现,当在查询数据的时候按照表2需要执行三次查询语句才能找到三层节点,而查询表1只需要一条查询语句,效率提高三倍,如果表中层级关系更加复杂,按照表2设计结构做查询效率更低,但是按照表1没有任何性能影响。可以确定核心设计方案为给表中添加node_relation字段,对于树形数据的展现和统计有明显的效率提升,同时也很好的避免了递归的复杂性问题。
上述用于云计算环境的树结构操作方法适用于云计算环境的树结构数据库表高效实现,只需对数据库进行一次查询,即可将数据以树形展示,同时在表中也直接记录了数据在树结构和层级中的关系。
参考图3所示,上述用于云计算环境的树结构操作系统,包括:
建立模块10,用于根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
获取模块20,用于获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
更新模块30,用于按照更新后的节点-父节点序列更改所述树结构。
本发明提供的用于云计算环境的树结构操作系统与本发明提供的用于云计算环境的树结构操作方法一一对应,在所述用于云计算环境的树结构操作方法的实施例阐述的技术特征及其有益效果均适用于用于云计算环境的树结构操作系统的实施例中,特此声明。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种用于云计算环境的树结构操作方法,其特征在于,包括如下步骤:
根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
按照更新后的节点-父节点序列更改所述树结构。
2.根据权利要求1所述的用于云计算环境的树结构操作方法,其特征在于,所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
根据操作的内容从查找的所有节点-父节点序列中识别待操作节点-父节点序列;
针对所述待操作节点-父节点序列执行操作。
3.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,所述操作的内容为增加节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行增加节点的节点标识符,根据所述节点标识符在所述节点关系表中查找包括所述节点标识符的所有节点-父节点序列;
从查找的所有节点-父节点序列中识别节点标识符在设定位置的待操作节点-父节点序列;
对待操作节点-父节点序列中设定位置处的节点增加一个子节点。
4.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,所述操作的内容为删除节点;所述节点-父节点序列中父节点在前,子节 点在后;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行删除节点的目标节点标识符,根据所目标述节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别将所有操作节点-父节点序列中的目标节点标识符以及目标节点标识符之后的节点标识符进行删除。
5.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,所述操作的内容为编辑节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行编辑节点的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别将所有操作节点-父节点序列中的目标节点标识符替换为设定标识符。
6.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,所述操作的内容为移动节点;
所述获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列的过程包括:
获取进行待移动的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找包括所述目标节点标识符的所有节点-父节点序列;
分别在所有节点-父节点序列中,将所述目标节点标识符移动至目标位置。
7.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,还包括:
获取各个节点-父节点序列的节点标识符个数,根据最大的节点标识符个数确定所述树结构的层级。
8.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,还包括:
获取目标节点标识符对应的任一个节点-父节点序列;
根据查找的节点-父节点序列确定目标节点标识符所在的层级。
9.根据权利要求1或2所述的用于云计算环境的树结构操作方法,其特征在于,还包括:
获取目标节点标识符对应的任一个节点-父节点序列;
根据查找的节点-父节点序列确定目标节点标识符的所有上级节点。
10.一种用于云计算环境的树结构操作系统,其特征在于,包括:
建立模块,用于根据树结构中各个节点的节点信息建立节点关系表;所述节点关系表包括节点标识符以及节点-父节点序列;所述节点-父节点序列记录节点、节点的父节点序列;
获取模块,用于获取进行操作的目标节点标识符,根据所述目标节点标识符在所述节点关系表中查找节点-父节点序列,根据操作的内容更新所述节点-父节点序列;
更新模块,用于按照更新后的节点-父节点序列更改所述树结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815864.8A CN106446086A (zh) | 2016-09-09 | 2016-09-09 | 用于云计算环境的树结构操作方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610815864.8A CN106446086A (zh) | 2016-09-09 | 2016-09-09 | 用于云计算环境的树结构操作方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106446086A true CN106446086A (zh) | 2017-02-22 |
Family
ID=58168894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610815864.8A Pending CN106446086A (zh) | 2016-09-09 | 2016-09-09 | 用于云计算环境的树结构操作方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446086A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681603A (zh) * | 2018-05-22 | 2018-10-19 | 福建天泉教育科技有限公司 | 数据库中快速搜索树形结构数据的方法、存储介质 |
CN109741034A (zh) * | 2019-01-03 | 2019-05-10 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
CN109800388A (zh) * | 2017-11-17 | 2019-05-24 | 车伯乐(北京)信息科技有限公司 | 一种json数据的编辑方法,装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106198A (zh) * | 2011-11-09 | 2013-05-15 | 金蝶软件(中国)有限公司 | 树型结构实现方法和装置 |
CN104063413A (zh) * | 2013-11-11 | 2014-09-24 | 国云科技股份有限公司 | 一种mysql数据库树状结构及其快速检索方法 |
US20140365428A1 (en) * | 2013-06-07 | 2014-12-11 | Dell Products, Lp | Updating Object Attributes in a Lock-Coupled Namespace Traversal |
CN104408067A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种多树结构的数据库设计方法及装置 |
CN104809170A (zh) * | 2015-04-08 | 2015-07-29 | 南京邮电大学 | 一种云环境下面向树型数据的存储方法 |
-
2016
- 2016-09-09 CN CN201610815864.8A patent/CN106446086A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106198A (zh) * | 2011-11-09 | 2013-05-15 | 金蝶软件(中国)有限公司 | 树型结构实现方法和装置 |
US20140365428A1 (en) * | 2013-06-07 | 2014-12-11 | Dell Products, Lp | Updating Object Attributes in a Lock-Coupled Namespace Traversal |
CN104063413A (zh) * | 2013-11-11 | 2014-09-24 | 国云科技股份有限公司 | 一种mysql数据库树状结构及其快速检索方法 |
CN104408067A (zh) * | 2014-10-29 | 2015-03-11 | 中国建设银行股份有限公司 | 一种多树结构的数据库设计方法及装置 |
CN104809170A (zh) * | 2015-04-08 | 2015-07-29 | 南京邮电大学 | 一种云环境下面向树型数据的存储方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800388A (zh) * | 2017-11-17 | 2019-05-24 | 车伯乐(北京)信息科技有限公司 | 一种json数据的编辑方法,装置及系统 |
CN108681603A (zh) * | 2018-05-22 | 2018-10-19 | 福建天泉教育科技有限公司 | 数据库中快速搜索树形结构数据的方法、存储介质 |
CN108681603B (zh) * | 2018-05-22 | 2022-04-01 | 福建天泉教育科技有限公司 | 数据库中快速搜索树形结构数据的方法、存储介质 |
CN109741034A (zh) * | 2019-01-03 | 2019-05-10 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
CN109741034B (zh) * | 2019-01-03 | 2021-02-09 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462625B (zh) | 针对大型图表的实时所保存查询更新 | |
CN103810212B (zh) | 一种数据库索引的自动创建方法及系统 | |
CA2434081C (en) | Data structures utilizing objects and pointers in the form of a tree structure | |
CN103902653B (zh) | 一种构建数据仓库表血缘关系图的方法和装置 | |
CN103561133B (zh) | 一种ip地址归属信息索引方法及快速查询方法 | |
CN107402927A (zh) | 一种基于图模型的企业关联关系拓扑建立方法及查询方法 | |
CN102663076B (zh) | 文件数据处理方法 | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN107679049A (zh) | 获取树形结构数据两节点间路径的方法、装置及系统 | |
CN103761276A (zh) | 一种树形结构数据比较的展示方法和装置 | |
CN107067200B (zh) | 一种物料清单数据的操作方法及装置 | |
CN106446086A (zh) | 用于云计算环境的树结构操作方法和系统 | |
CN104133868B (zh) | 一种用于垂直爬虫数据分类整合的策略 | |
CN105809389A (zh) | 一种bom树的生成方法及装置 | |
CN110928882B (zh) | 一种基于改进红黑树的内存数据库索引方法及系统 | |
CN106021466A (zh) | 一种存储数据的方法及装置 | |
CN104408067A (zh) | 一种多树结构的数据库设计方法及装置 | |
CN105808779B (zh) | 基于剪枝的图漫游并行计算方法和应用 | |
CN108197187A (zh) | 查询语句的优化方法、装置、存储介质和计算机设备 | |
WO2021082581A1 (zh) | 一种文件系统 | |
CN105025013A (zh) | 基于优先级Trie树的动态IP匹配模型 | |
CN105512211A (zh) | 一种可动态扩展的数据库设计方法 | |
CN112765288A (zh) | 知识图谱的构建方法及系统、信息查询方法及系统 | |
CN102725754B (zh) | 一种索引数据处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |