树形结构数据的存储方法、电子设备、存储介质及系统与流程

文档序号:17696080发布日期:2019-05-17 21:32阅读:258来源:国知局
树形结构数据的存储方法、电子设备、存储介质及系统与流程

本发明涉及数据存储领域,尤其涉及树形结构数据的存储方法、电子设备、存储介质及系统。



背景技术:

目前随着计算机技术的高速发展,大数据的研究成为行业的趋势,大数据的研究离不开对基础数据的研究;目前都是通过树形结构将具有关联关系的数据进行关联,目前对于树形结构的数据都是通过邻接表的方式将其存储,现有的使用邻接表的方式并不能满足所有的需求,邻接表的方式只是存储了所有节点的父子之间的关系,当不确定层级的情况时,如果需要查询一个节点的所有后代,查询复杂且自信性能低效。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供树形结构数据的存储方法,其能解决现有的使用邻接表的方式并不能满足所有的需求,邻接表的方式只是存储了所有节点的父子之间的关系,当不确定层级的情况时,如果需要查询一个节点的所有后代,查询复杂且自信性能低效的问题。

本发明的目的之二在于提供一种电子设备,其能解决现有的使用邻接表的方式并不能满足所有的需求,邻接表的方式只是存储了所有节点的父子之间的关系,当不确定层级的情况时,如果需要查询一个节点的所有后代,查询复杂且自信性能低效的问题。

本发明的目的之三在于提供一种计算机可读存储介质,其能解决现有的使用邻接表的方式并不能满足所有的需求,邻接表的方式只是存储了所有节点的父子之间的关系,当不确定层级的情况时,如果需要查询一个节点的所有后代,查询复杂且自信性能低效的问题。

本发明的目的之四在于提供树形结构数据的存储系统,其能解决现有的使用邻接表的方式并不能满足所有的需求,邻接表的方式只是存储了所有节点的父子之间的关系,当不确定层级的情况时,如果需要查询一个节点的所有后代,查询复杂且自信性能低效的问题。

本发明提供目的之一采用以下技术方案实现:

s1、获取含有树形结构的树形结构关系数据,其中,所述树形结构数据包括若干个节点和若干节点数据,每个所述节点与每个所述节点数据对应;

s2、根据所述树形结构关系将所述节点中具有关联关系的两个节点作为节点对,将所述节点对存储在预设treepaths表中,其中,所述关联关系为祖先和后代;

s3、将每个所述节点对中所述节点对应的节点数据与所述预设treepaths表建立映射关系;

s4、将所述预设treepaths表、所述映射关系以及所述节点数据存储在数据库中,得到树形结构数据库。

进一步地,所述树形结构关系由若干父子关系组成。

进一步地,所述s2还包括:在所述预设treepaths表为每个所述节点增加一自身节点对,所述自身节点对包括两个相同的所述节点。

进一步地,所述将所述节点对存储在预设treepaths表中具体为:将所述节点对存储为预设treepaths表的一行。

进一步地,所述节点对中包括祖先节点和后代节点,所述后代节点为所述祖先节点的后代,所述祖先节点与所述后代节点位于预设treepaths表的同一行。

本发明提供目的之二采用以下技术方案实现:

一种电子设备,包括:处理器;

存储器;以及程序,其中所述程序被存储在所述存储器中,并且被配置成由处理器执行,所述程序包括用于执行本申请的树形结构数据的存储方法。

本发明提供目的之三采用以下技术方案实现:

一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行本申请的树形结构数据的存储方法。

本发明提供目的之四采用以下技术方案实现:

树形结构数据的存储系统,包括:

获取模块,所述获取模块用于获取含有树形结构关系的树形结构数据,其中,所述树形结构数据包括若干个节点和若干节点数据,每个所述节点与每个所述节点数据对应;

节点对存储模块,所述节点对存储模块用于根据所述树形结构关系将所述节点中具有关联关系的两个节点作为节点对,将所述节点对存储在预设treepaths表中,其中,所述关联关系为祖先和后代;

映射模块,所述映射模块用于将每个所述节点对中所述节点对应的节点数据与所述预设treepaths表建立映射关系;

数据库构建模块,所述数据库构建模块用于将所述预设treepaths表、所述映射关系以及所述节点数据存储在数据库中,得到树形结构数据库。

进一步地,所述节点对存储模块包括节点对定义单元和存储单元,所述节点对定义单元用于根据所述树形结构将所述节点中具有关联关系的两个节点作为节点对,所述存储单元用于将所述节点对存储在预设treepaths表中,其中,所述关联关系为祖先和后代。

进一步地,所述节点对中包括祖先节点和后代节点,所述后代节点为所述祖先节点的后代,所述祖先节点与所述后代节点位于预设treepaths表的同一行。

相比现有技术,本发明的有益效果在于:本发明的树形结构数据的存储方法,包括获取含有树形结构关系的树形结构数据,其中,所述树形结构数据包括若干个节点和若干节点数据,每个所述节点与每个所述节点数据对应;根据所述树形结构关系将所述节点中具有关联关系的两个节点作为节点对,将所述节点对存储在预设treepaths表中,其中,所述关联关系为祖先和后代;将每个所述节点对中所述节点对应的节点数据与所述预设treepaths表建立映射关系;将所述预设treepaths表、所述映射关系以及所述节点数据存储在数据库中,得到树形结构数据库。通过将所有含有祖先和后代关系的节点相互关联得到节点对,再将节点度存储到treepaths表中,并将对应的节点数据与其建立映射关系,即可以同时查询到祖先节点对应的所有后代的节点的数据,通过空间换时间的方案,减少了在查询数据过程中由冗余的计算所造成的消耗。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明的树形结构数据的存储方法的流程示意图;

图2为本发明的树形结构数据的存储系统的框架图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

如图1所示的树形结构数据的存储系统,包括以下步骤:

s1、获取含有树形结构关系的树形结构数据,其中,树形结构数据包括若干个节点和若干节点数据,每个节点与每个节点数据对应。在本实施例中,树形结构关系由若干父子关系组成,具体为树形结构关系包括若干父子关系,多个父子关系构成了树形结构关系,即树形结构数据中的节点数据之间的存在上述的父子关系。

s2、根据树形结构关系将节点中具有关联关系的两个节点作为节点对,将节点对存储在预设treepaths表中,其中,关联关系为祖先和后代,节点对中包括祖先节点和后代节点,后代节点为祖先节点的后代,祖先节点与后代节点位于预设treepaths表的同一行。在本实施例中,treepaths表即为树桩表,是为了存储节点对的表。在本实施例中还包括在预设treepaths表为每个节点增加一自身节点对,自身节点对包括两个相同的节点。根据步骤s1中的树形结构关系中的父子关系,可得到不同的节点之间可能存储祖先和后代的关系,例如a节点为b节点的父节点,b节点为c节点的父节点,则a节点为c节点的祖先节点,a节点与c节点之间的关系为祖先和后代的关系,a节点与b节点的关系也为祖先和后代的关系。则b节点和c节点都为a节点的后代。将上述的所有节点中具有祖先和后代关系的两节点作为节点对,可得到若干节点对,将节点对存储在treepaths表中,将节点对中的两节点存储在treepaths表的同一行。treepaths表具体如下表1所示,

表1treepaths表

以下对表1进行详细说明,表1为将节点对存储后treepaths表,上述的表1中1、2、3、4、5、6、7均表示不同的节点,则表中的节点对分别为节点1和节点1,节点1和节点2,节点1和节点3,节点1和节点4,节点1和节点5,节点1和节点6,节点1和节点7,节点2和节点2,节点2和节点3,节点3和节点3,节点4和节点4,节点4和节点5,节点4和节点6,节点4和节点7,节点5和节点5,节点5和节点6,节点5和节点7,节点6和节点6,节点7和节点7。上述的节点1和节点1,节点2和节点2,节点3和节点3,节点4和节点4,节点5和节点5,节点6和节点6,节点7和节点7即为自身节点对。从上表可以看出,根据后代节点5便可从上述表1中匹配到对应的所有祖先节点,即为节点1、节点4,以及自身节点5。

s3、将每个节点对中节点对应的节点数据与预设treepaths表建立映射关系;即将每个节点数据与对应的节点建立映射关系。

s4、将预设treepaths表、映射关系以及节点数据存储在数据库中,得到树形结构数据库。则可根据已知的节点可在树形结构数据库匹配出对应的所有有关联的节点,从而匹配出对应的节点数据。

本发明提供了一种电子设备,其特征在于包括:处理器;

存储器;以及程序,其中程序被存储在存储器中,并且被配置成由处理器执行,程序包括用于执行本申请的树形结构数据的存储方法。

本发明提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:计算机程序被处理器执行本申请的树形结构数据的存储方法。

如图2所示,本发明提供了树形结构数据的存储系统,包括:获取模块,获取模块用于获取含有树形结构的树形结构数据,其中,树形结构数据包括若干个节点和若干节点数据,每个节点与每个节点数据对应;节点对存储模块,节点对存储模块用于根据树形结构将节点中具有关联关系的两个节点作为节点对,将节点对存储在预设treepaths表中,其中,关联关系为祖先和后代;映射模块,映射模块用于将每个节点对中节点对应的节点数据与预设treepaths表建立映射关系;数据库构建模块,数据库构建模块用于将预设treepaths表、映射关系以及节点数据存储在数据库中,得到树形结构数据库。节点对存储模块包括节点对定义单元和存储单元,节点对定义单元用于根据树形结构将节点中具有关联关系的两个节点作为节点对,存储单元用于将节点对存储在预设treepaths表中,其中,关联关系为祖先和后代。节点对中包括祖先节点和后代节点,后代节点为祖先节点的后代,祖先节点与后代节点位于预设treepaths表的同一行。

本发明的树形结构数据的存储方法,包括获取含有树形结构关系的树形结构数据,其中,树形结构数据包括若干个节点和若干节点数据,每个节点与每个节点数据对应;根据树形结构关系将节点中具有关联关系的两个节点作为节点对,将节点对存储在预设treepaths表中,其中,关联关系为祖先和后代;将每个节点对中节点对应的节点数据与预设treepaths表建立映射关系;将预设treepaths表、映射关系以及节点数据存储在数据库中,得到树形结构数据库。通过将所有含有祖先和后代关系的节点相互关联得到节点对,再将节点度存储到treepaths表中,并将对应的节点数据与其建立映射关系,即可以同时查询到祖先节点对应的所有后代的节点的数据,通过空间换时间的方案,减少了在查询数据过程中由冗余的计算所造成的消耗。

以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1