数据存储方法、数据查询方法、装置及存储介质制造方法及图纸

技术编号:22166662 阅读:27 留言:0更新日期:2019-09-21 10:28
本申请涉及一种数据存储方法、数据查询方法、装置及存储介质,属于计算机技术领域,该方法包括:获取树形数据结构中的目标节点;在目标节点为根节点时生成根节点的M1位继承编码,M1为正整数;在目标节点为第i级子节点时生成子节点的继承编码,第i级子节点的继承编码包括第i‑1级节点的继承编码,且第i级子节点的继承编码的位数为Mi‑1+mi,Mi‑1为第i‑1级节点的继承编码的位数,mi为第i级子节点的新增编码位数;存储目标节点与继承编码之间的对应关系;通过待查询的子节点的根节点的继承编码和子节点的继承编码的位数就可以查询到符合查询要求的所有子节点,可以提高数据查询效率。

Data storage method, data query method, device and storage medium

【技术实现步骤摘要】
数据存储方法、数据查询方法、装置及存储介质
本申请涉及一种数据存储方法、数据查询方法、装置及存储介质,属于计算机

技术介绍
树形数据结构是一种非线性数据结构,广泛应用于计算机领域。在计算机领域,树形数据结构用于模拟具有树状结构性质的数据集合,它是由n个有限节点组成的一个具有层次关系的集合。比如:在一种典型的树形数据结构中,中国的省包含若干个市,每个市包含若干个区,每个区包含若干个街道,每条街道包含若干居住区。对树形数据结构进行数据存储的方法包括:建立并存储每个节点与该节点的父节点之间的二维关系表,比如:{Node_id,Parent_id}。其中,Node_id为当前节点的节点标识,Parent_id为当前节点的父节点的节点标识。然而,在查询通过上述数据存储方法存储得到的数据时,需要频繁地执行递归操作,而递归过程需要不断地访问数据库,数据查询效率较低。比如:用户需要查询江苏省的所有的居住区,按照上述数据存储方法,需要先通过江苏省的Node_id找到江苏省包括的所有市的Node_id;再通过每个市的Node_id查找出每个市包括的所有区的Node_id;再通过每个区的Node_id查找出每个区包括的所有街道的Node_id;最后通过每条街道的Node_ide查找出每条街道包括的所有居住区。这些频繁的递归操作使得数据查询的效率较低。
技术实现思路
本申请提供了一种数据存储方法、数据查询方法、装置及存储介质,可以解决以现有的数据存储方法存储树形数据结构时数据查询效率较低的问题。本申请提供如下技术方案:第一方面,提供了一种数据存储方法,所述方法包括:获取树形数据结构中的目标节点;在所述目标节点为根节点时生成所述根节点的M1位继承编码,所述M1为正整数;在所述目标节点为第i级子节点时生成所述子节点的继承编码,所述第i级子节点的继承编码包括第i-1级节点的继承编码,且所述第i级子节点的继承编码的位数为Mi-1+mi,所述Mi-1为所述第i-1级节点的继承编码的位数,mi为所述第i级子节点的新增编码位数;所述i为大于1的整数;存储所述目标节点与继承编码之间的对应关系,不同目标节点对应不同的继承编码。可选地,不同级之间的新增编码位数相同,所述在所述目标节点为第i级子节点时生成所述子节点的继承编码,包括:获取所述新增编码位数的值;根据所述新增编码位数的值生成具有所述新增编码位数的新增编码;获取所述第i级子节点的父节点的继承编码;将所述第i级子节点的父节点的继承编码与所述新增编码拼接,得到所述第i级子节点的继承编码,所述第i级子节点的继承编码与所述第i级其它子节点的继承编码不同。可选地,所述存储所述目标节点与继承编码之间的对应关系,包括:确定所述目标节点的继承编码所映射的数据库;将所述目标节点与所述继承编码之间的对应关系存储至所述数据库。可选地,所述确定所述目标节点的继承编码所映射的数据库,包括:使用所述目标节点的继承编码对预设数值进行取余,将取余结果指示的第一数据库确定为所述目标节点的继承编码所映射的数据库;或者,使用所述目标节点的继承编码的前n位对预设数值进行取余,将取余结果指示的第二数据库确定为所述目标节点的继承编码所映射的数据库,所述n为正整数;或者,使用所述目标节点所属父节点的前n’位对预设数值进行取余,将取余结果指示的第三数据库确定为所述目标节点的继承编码所映射的数据库,所述n’为正整数。可选地,所述将所述目标节点与所述继承编码之间的对应关系存储至取余结果指示的数据库之后,还包括:获取所述目标节点的继承编码;在所述目标节点的继承编码所映射的数据库中查找所述目标节点;对所述目标节点执行对应的处理操作,所述处理操作包括修改操作或者删除操作。可选地,所述方法还包括:获取所述目标节点的子节点的数量;存储所述目标节点与所述子节点数量之间的对应关系。可选地,所述方法还包括:获取所述目标节点的数据状态;存储所述目标节点与所述数据状态之间的对应关系,所述数据状态用于指示所述目标节点是否被删除。可选地,所述方法还包括:获取所述目标节点所在层级的层级标识;存储所述目标节点与所述层级标识之间的对应关系,不同层级的层级标识不同。第二方面,提供了一种数据查询方法,所述方法包括:获取对树形数据结构的数据查询需求,所述数据查询需求包括待查询子节点所属的根节点和所述待查询子节点的级数;获取所述根节点的继承编码;获取所述待查询子节点的级数对应的继承编码的目标位数;在节点与继承编码之间的对应关系中查找继承编码的位数为所述目标位数、且包括所述根节点的继承编码的子节点;其中,所述节点与继承编码之间的对应关系包括所述根节点对应的M1位继承编码、第j级子节点对应的Mj-1+mj位继承编码;所述第j级子节点的继承编码包括第j-1级节点的继承编码,所述Mj-1为所述第j-1级节点的继承编码的位数,mj为所述第j级子节点的新增编码位数;所述j为大于1的整数;所述M1为正整数。可选地,不同级之间的新增编码位数相同,所述获取所述待查询子节点的级数对应的继承编码的目标位数,包括:获取所述新增编码位数的值;计算所述新增编码位数的值乘以j-1后与M1的和,得到所述目标位数。可选地,所述方法还包括:获取所述待查询子节点所在层级的目标层级标识;在预先存储的节点与层级标识之间的对应关系中查找具有所述目标层级标识的节点。第三方面,提供了一种数据存储装置,所述装置包括:节点获取模块,用于获取树形数据结构中的目标节点;编码生成模块,用于在所述目标节点为根节点时生成所述根节点的M1位继承编码,所述M1为正整数;所述编码生成模块,还用于在所述目标节点为第i级子节点时生成所述子节点的继承编码,所述第i级子节点的继承编码包括第i-1级节点的继承编码,且所述第i级子节点的继承编码的位数为Mi-1+mi,所述Mi-1为所述第i-1级节点的继承编码的位数,mi为所述第i级子节点的新增编码位数;所述i为大于1的整数;数据存储模块,用于存储所述目标节点与继承编码之间的对应关系,不同目标节点对应不同的继承编码。第四方面,提供了一种数据查询装置,所述装置包括:需求获取模块,用于获取对树形数据结构的数据查询需求,所述数据查询需求包括待查询子节点所属的根节点和所述待查询子节点的级数;编码获取模块,用于获取所述根节点的继承编码;位数获取模块,用于获取所述待查询子节点的级数对应的继承编码的目标位数;节点查询模块,用于在节点与继承编码之间的对应关系中查找继承编码的位数为所述目标位数、且包括所述根节点的继承编码的子节点;其中,所述节点与继承编码之间的对应关系包括所述根节点对应的M1位继承编码、第j级子节点对应的Mj-1+mj位继承编码;所述第j级子节点的继承编码包括第j-1级节点的继承编码,所述Mj-1为所述第j-1级节点的继承编码的位数,mj为所述第j级子节点的新增编码位数;所述j为大于1的整数;所述M1为正整数。第五方面,提供一种数据存储装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第一方面所述的数据存储方法。第六方面,提供一种数据查询装置,所述装置包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现第二方面所述的本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:获取树形数据结构中的目标节点;在所述目标节点为根节点时生成所述根节点的M1位继承编码,所述M1为正整数;在所述目标节点为第i级子节点时生成所述子节点的继承编码,所述第i级子节点的继承编码包括第i‑1级节点的继承编码,且所述第i级子节点的继承编码的位数为Mi‑1+mi,所述Mi‑1为所述第i‑1级节点的继承编码的位数,mi为所述第i级子节点的新增编码位数;所述i为大于1的整数;存储所述目标节点与继承编码之间的对应关系,不同目标节点对应不同的继承编码。

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:获取树形数据结构中的目标节点;在所述目标节点为根节点时生成所述根节点的M1位继承编码,所述M1为正整数;在所述目标节点为第i级子节点时生成所述子节点的继承编码,所述第i级子节点的继承编码包括第i-1级节点的继承编码,且所述第i级子节点的继承编码的位数为Mi-1+mi,所述Mi-1为所述第i-1级节点的继承编码的位数,mi为所述第i级子节点的新增编码位数;所述i为大于1的整数;存储所述目标节点与继承编码之间的对应关系,不同目标节点对应不同的继承编码。2.根据权利要求1所述的方法,其特征在于,不同级之间的新增编码位数相同,所述在所述目标节点为第i级子节点时生成所述子节点的继承编码,包括:获取所述新增编码位数的值;根据所述新增编码位数的值生成具有所述新增编码位数的新增编码;获取所述第i级子节点的父节点的继承编码;将所述第i级子节点的父节点的继承编码与所述新增编码拼接,得到所述第i级子节点的继承编码,所述第i级子节点的继承编码与所述第i级其它子节点的继承编码不同。3.根据权利要求1所述的方法,其特征在于,所述存储所述目标节点与继承编码之间的对应关系,包括:确定所述目标节点的继承编码所映射的数据库;将所述目标节点与所述继承编码之间的对应关系存储至所述数据库。4.根据权利要求3所述的方法,其特征在于,所述确定所述目标节点的继承编码所映射的数据库,包括:使用所述目标节点的继承编码对预设数值进行取余,将取余结果指示的第一数据库确定为所述目标节点的继承编码所映射的数据库;或者,使用所述目标节点的继承编码的前n位对预设数值进行取余,将取余结果指示的第二数据库确定为所述目标节点的继承编码所映射的数据库,所述n为正整数;或者,使用所述目标节点所属父节点的前n’位对预设数值进行取余,将取余结果指示的第三数据库确定为所述目标节点的继承编码所映射的数据库,所述n’为正整数。5.根据权利要求3所述的方法,其特征在于,所述将所述目标节点与所述继承编码之间的对应关系存储至取余结果指示的数据库之后,还包括:获取所述目标节点的继承编码;在所述目标节点的继承编码所映射的数据库中查找所述目标节点;对所述目标节点执行对应的处理操作,所述处理操作包括修改操作或者删除操作。6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:获取所述目标节点的子节点的数量;存储所述目标节点与所述子节点数量之间的对应关系。7.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:获取所述目标节点的数据状态;存储所述目标节点与所述数据状态之间的对应关系,所述数据状态用于指示所述目标节点是否被删除。8.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:获取所述目标节点所在层级的层级标识;存储所述目标节点与所述层级标识之间的对应关系,不同层级的层级标识不同。9.一种数据查询方法,其特征在于,所述方法包括:获取对树形数据结构的数据查询需求,所述数据查询需求包括待查询子节点所属的根节点和所述待查询子节点的级数;获取所述根节点的继承编码;获取所述待查询子节点的级数对应的继承编码的目...

【专利技术属性】
技术研发人员:胡平贡文伟羌云皓
申请(专利权)人:苏州睿威博科技有限公司苏州科达科技股份有限公司
类型:发明
国别省市:江苏,32

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

1