CN104408067A - 一种多树结构的数据库设计方法及装置 - Google Patents
一种多树结构的数据库设计方法及装置 Download PDFInfo
- Publication number
- CN104408067A CN104408067A CN201410594713.5A CN201410594713A CN104408067A CN 104408067 A CN104408067 A CN 104408067A CN 201410594713 A CN201410594713 A CN 201410594713A CN 104408067 A CN104408067 A CN 104408067A
- Authority
- CN
- China
- Prior art keywords
- rule numbers
- node
- change
- rule
- nodes
- 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.)
- Granted
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/21—Design, administration or maintenance of databases
-
- 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
技术领域
本发明涉及数据库领域,尤其涉及一种多树结构的数据库设计方法及装置。
背景技术
在数据库系统的设计中,树结构是信息的重要组织形式,一切具有层级关系的原型都可以树来描述。目前,社会分工日益细化,树元素不再单独存在,一方面,同一个元素个体可能在多种树中存在,以人为例,在家为家族树中的某一节点、在企业又为企业员工树的某一节点等,另一方面,不同元素个体间关系也多样化。因此,多树存储和查询效率的高低,会严重影响计算机信息系统的性能和资源利用。
目前,针对树结构的数据库设计方法,通常做法为:将节点设计成两张表,一张为节点信息表,存储节点ID(Identification)和基本信息;另一张为节点关系表,包含树类型、节点ID和其父节点的ID、规则号(RuleID)、节点所处层级、在层级中的次序,规则号带一定规则,长度根据树的宽度和深度进行设置,增加一个节点规则号生成模块,用于从根节点往下依次递归,生成每个节点在每颗树上的RuleID,比如宽度为3、深度为3的树,根节点RuleID为0,其子节点RuleID依次为00、01、02,如01的子节点为010、011、012。在此方案下,新增一棵树,在节点关系表中增加新的树的类型值,无须对数据设计进行调整;查询节点A的所有父节点的方法为查询RuleID,对ID进行解析即可关联查出所有父节点,比如RuleID为012的所有父节点即RuleID分别为0、01的节点;当要展示树全量信息时,对节点关系表根据RuleID的长度和RuleID进行排序,即可全量展示。在多树查询时,需要分解成单树查询,再对单树查询结果进行比较和合并,因而查询效率较低。当元素存在于多棵树时,也只能按照树的类型依次进行变更,不能有效实现多树节点的实时变更。
发明内容
针对上述缺陷,本发明实施例提供了一种多树结构的数据库设计方法及装置,可以实时生成且查询效率较高。
一种多树结构的数据库设计方法,包括:
建立节点信息表与节点关系表;
发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更;
根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;
根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
一种多树结构的数据库设计装置,其特征在于,包括:
建立模块,建立节点信息表与节点关系表;
变更模块,将发生变更元素的元素基本信息在所述节点信息表中进行相应变更;
编号模块,根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;
更新模块,根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
本申请中,通过建立节点信息表与节点关系表,在发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更,然后,根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号,最后,根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。以元素编号为媒介,突破了所有树与树之间的隔阂,在变更时可将所有节点关系表中记录当成同一树记录处理,又只涉及串接、替换或者清除规则,不涉及重新排序,内存资源消耗低,提升树查询和处理效率,能实现实时变更多树节点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种多树结构的数据库设计方法的流程示意图;
图2为一种多树结构的数据库设计方法的另一种流程示意图;
图3为一种多树结构的数据库设计方法的具体应用场景流程图;
图4为一种多树结构的数据库设计装置的结构示意图;
图5为一种多树结构的数据库设计装置的变更模块的结构示意图;
图6为一种多树结构的数据库设计装置的编号模块的结构示意图;
图7为一种多树结构的数据库设计装置的解析模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多树结构的数据库设计方法及装置,可以降低内存资源消耗,能实现实时变更多树节点。下面分别进行详细介绍。
请参阅图1,图1为本发明实施例提供的一种多树结构的数据库设计方法的流程示意图。如图1所示,该多树结构的数据库设计方法可以包括以下步骤:
101、建立节点信息表与节点关系表。
所述建立节点信息表的方式为以元素编号作为主键,所述节点信息表用于存储元素的基本信息,元素的基本信息包括:元素编号、元素的节点信息、元素的父节点信息等。所述建立节点关系表的方式为以元素编号为外键、树类型、父节点元素编号为索引,规则编号为属性。元素编号是将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,然后以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。
102、发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更;
所属元素变更,其中变更的类型包括新增、修改和删除。所述新增是指增加新的元素;所述修改是将某节点编号修改为其他编号;所述删除是指将某个元素删除。接着,将发生变更的元素基本信息在节点信息表中进行相应信息更新,如变更类型是新增,则在节点信息表中记录增加的位置,它的元素编号,以及其父节点信息等;如变更类型是修改,则在节点信息表中记录修改的位置,修改元素的元素编号,将修改元素的元素编号替换成其他编号;如变更类型是删除,则在节点信息表中记录删除节点的位置,及其父节点信息等,将含删除元素编号的信息进行替换。
103、根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;
所述变更元素的其他附带条件信息主要是指除变更元素编号以外的其他信息,如变更元素的父节点信息等。所述在所述节点关系表中查询不同树对应的元素规则编号即根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表的信息,查询与变更元素相关的所在不同树中的其他元素的元素编号、元素规则编号。依据所述查询到的相关信息,对有关联的元素生成相应的元素规则编号。所述元素的规则编号可选地:元素的规则编号为父节点元素规则编号+分隔符+当前元素编号组成,其中根节点的元素规则编号为根节点元素编号。
104、根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
所述根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
本发明实施例通过建立节点信息表与节点关系表;发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更;根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。以元素编号为媒介,突破了所有树与树之间的隔阂,在变更时可将所有节点关系表中记录当成同一树记录处理,又只涉及串接、替换或者清除规则,不涉及重新排序,内存资源消耗低,能实现实时变更多树节点。
请参见图2,作为一种可能的实施方式,查询某个特定元素的父节点时,还包括步骤201与步骤202。
201、根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号;
所述根据所述元素在所述节点关系表中的元素规则主要是元素的生成规则,编号规则等,所述其他附带条件信息主要包括所述元素的父节点信息等,依据这些信息查询所述元素在所述节点关系表中的元素规则编号。
202、根据所述元素规则编号生成的规则,反向解析,得到所述元素的全部上级父节点信息。
所述查询的依据是所述元素规则编号的生成原则。通过逆向解析,能够查询找所述元素的全部父节点信息,最后,可以定位到在某棵树的具体的父节点信息。
本发明实施例根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号;根据所述元素规则编号生成的规则,反向解析,得到所述元素的全部上级父节点信息。可以根据元素规则编号的长度快速定位元素所处层级,因而在多树展示时,只需要根据节点关系表,按照不同的树编号和元素规则编号长度、元素规则进行排序,可直接生产多树,无需递归处理,提高了运行效率,节省了服务器资源。
请参见图3,实施例三以一个具体进行说明,利用单树结构变更过程进行说明,如图3所示。
若变更元素的变更类型为删除时,在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。如果删除节点元素B00000001,其中节点元素B00000001的父节点为:A00000000,元素规则编号为A00000000|B00000001,它的下一个节点信息为元素编号为B10000007,其父节点为:B00000001,元素规则编号为:A00000000|B00000001|B10000007。删除节点元素B00000001时,找到所有以节点B00000001为父节点的节点,将这些节点的父节点编号替换为B00000001的父节点编号A00000000;第二步,将所有元素规则编号中,包含的“B00000001|”删除。
若变更元素的变更类型为修改时,在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。如果将节点元素B00000001修改为B10000002节点,将所有本节点编号为B10000001的节点元素编号替换为B10000002,将所有元素规则编号中包含的“B10000001”替换为“B10000002”。
若变更元素的元素变更类型为新增时,在节点关系表中插入相关树的记录作为元素规则编号的前缀。如果在根节点和C00000001之间新增节点,其中,根节点元素编号为:A00000000,根节点的元素编号的父节点为其本身,即A00000000,其元素规则编号为:A00000000,节点元素C00000001的父节点为A00000000,元素规则编号为:A00000000|C00000001。第一步,给新增新节点编号,节点元素编号为D00000001;第二步,找到新节点父节点的元素规则编号:A00000000;第三步,将直接下一级节点的父节点编号从A00000000替换成D00000001;第四步,将所有元素规则编号中,包含的“A00000000|C00000001”替换成“A00000000|D00000001|C00000001”。
下面将结合附图4-附图7,对本发明实施例提供的一种多树结构的数据库设计装置进行详细介绍。需要说明的是,附图4-附图7所述的多数结构的数据库设计装置可应用于执行上述附图1-附图3所示的方法。
请参见图4,一种多树结构的数据库设计装置的结构示意图,包括:建立模块401、变更模块402、编号模块403、更新模块404、解析模块405。
建立模块401,建立节点信息表与节点关系表。
所述建立模块建立节点信息表与节点关系表时,所述建立节点信息表的方式为以元素编号作为主键,所述节点信息表用于存储元素的基本信息,元素的基本信息包括:元素编号、元素的节点信息、元素的父节点信息等。所述建立节点关系表的方式为以元素编号为外键、树类型、父节点元素编号为索引,规则编号为属性。元素编号是将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,然后以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。
变更模块402,将发生变更元素的元素基本信息在所述节点信息表中进行相应变更。
变更模块主要将将发生变更元素的元素基本信息在所述节点信息表中进行相应变更。元素变更的类型包括新增、修改和删除。所述新增是指增加新的元素;所述修改是将某节点编号修改为其他编号;所述删除是指将某个元素删除。接着,将发生变更的元素基本信息在节点信息表中进行相应信息更新,如变更类型是新增,则在节点信息表中记录增加的位置,它的元素编号,以及其父节点信息等;如变更类型是修改,则在节点信息表中记录修改的位置,修改元素的元素编号,将修改元素的元素编号替换成其他编号;如变更类型是删除,则在节点信息表中记录删除节点的位置,及其父节点信息等,将含删除元素编号的信息进行替换。
编号模块403,根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号。
所述变更元素的其他附带条件信息主要是指除变更元素编号以外的其他信息,如变更元素的父节点信息等。所述在所述节点关系表中查询不同树对应的元素规则编号即根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表的信息,查询与变更元素相关的所在不同树中的其他元素的元素编号、元素规则编号。依据所述查询到的相关信息,对有关联的元素生成相应的元素规则编号。所述元素的规则编号可选地:元素的规则编号为父节点元素规则编号+分隔符+当前元素编号组成,其中根节点的元素规则编号为根节点元素编号。
更新模块404,根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
更新模块依据所述根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
解析模块405,用来对所述某个特定元素进行解析获取其父节点信息。
解析模块根据元素编号及其它附带条件信息获得某个特定元素的规则编号,然后根据规则编号生成规则,反向解析元素规则编码,获得该元素的单树或者多树父节点信息以及子节点信息。
本发明实施例通过建立模块建立节点信息表与节点关系表;变更模块在发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更;编号模块根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;更新模块根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新;解析模块,用来对所述某个特定元素进行解析获取其父节点信息以及子节点信息以元素编号为媒介,突破了所有树与树之间的隔阂,在变更时可将所有节点关系表中记录当成同一树记录处理,又只涉及串接、替换或者清除规则,不涉及重新排序,内存资源消耗低,能实现实时变更多树节点。
请参见图5,为本发明实施例提供的变更模块的一个实施例的结构示意图;该变更模块可包括:删除单元501、修改单元502和新增单元503。
删除单元501,若变更元素的变更类型为删除时,在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。
删除单元主要在更变元素的变更类型为删除时进行工作,然后在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。利用单树结构变更过程进行说明,如果删除节点元素B00000001,其中节点元素B00000001的父节点为:A00000000,元素规则编号为A00000000|B00000001,它的下一个节点信息为元素编号为B10000007,其父节点为:B00000001,元素规则编号为:A00000000|B00000001|B10000007。删除节点元素B00000001时,找到所有以节点B00000001为父节点的节点,将这些节点的父节点编号替换为B00000001的父节点编号A00000000;第二步,将所有元素规则编号中,包含的“B00000001|”删除。
修改单元502,若变更元素的变更类型为修改时,在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。
删除单元主要在更变元素的变更类型为删除时进行工作,然后在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀。利用单树结构变更过程进行说明,如果将节点元素B00000001修改为B10000002节点,将所有本节点编号为B10000001的节点元素编号替换为B10000002,将所有元素规则编号中包含的“B10000001”替换为“B10000002”。
新增单元503,若变更元素的元素变更类型为新增时,在节点关系表中插入相关树的记录作为元素规则编号的前缀。
新增单元主要在更变元素的变更类型为新增时进行工作,在节点关系表中插入相关树的记录作为元素规则编号的前缀。利用单树结构变更过程进行说明,如果在根节点和C00000001之间新增节点,其中,根节点元素编号为:A00000000,根节点的元素编号的父节点为其本身,即A00000000,其元素规则编号为:A00000000,节点元素C00000001的父节点为A00000000,元素规则编号为:A00000000|C00000001。第一步,给新增新节点编号,节点元素编号为D00000001;第二步,找到新节点父节点的元素规则编号:A00000000;第三步,将直接下一级节点的父节点编号从A00000000替换成D00000001;第四步,将所有元素规则编号中,包含的“A00000000|C00000001”替换成“A00000000|D00000001|C00000001”。
本发明实施例中若变更元素的变更类型为删除时,删除单元在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;若变更元素的变更类型为修改时,修改单元在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;若变更元素的元素变更类型为新增时,新增单元在节点关系表中插入相关树的记录作为元素规则编号的前缀。以元素编号为媒介,突破了所有树与树之间的隔阂,在变更时可将所有节点关系表中记录当成同一树记录处理,又只涉及串接、替换或者清除规则,不涉及重新排序,内存资源消耗低,能实现实时变更多树节点。
请参见图6,为本发明实施例提供的编号模块的一个实施例的结构示意图;该变更模块可包括:元素编号单元601、元素规则编号单元602。
元素编号单元601,将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,即元素编号。
元素编号单元主要将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,即元素编号。所述特定规则指随机规则,所述唯一定长标识是指所述元素编号统一长度。
元素规则编号单元602,以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。
元素规则编号单元主要以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。所述元素的规则编号可选地:元素的规则编号为父节点元素规则编号+分隔符+当前元素编号组成,其中根节点的元素规则编号为根节点元素编号。
本发明实施例利用元素编号单元将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,即元素编号。然后,元素规则编号单元,以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。可以根据元素规则编号的长度快速定位元素所处层级,因而在多树展示时,只需要根据节点关系表,按照不同的树编号和元素规则编号长度、元素规则进行排序,可直接生产多树,无需递归处理,提高了运行效率,节省了服务器资源
请参见图7,为本发明实施例提供的解析模块的一个实施例的结构示意图;该变更模块可包括:查询单元701、解析单元702。
查询单元,根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号。
所述根据所述元素在所述节点关系表中的元素规则主要是元素的生成规则,编号规则等,所述其他附带条件信息主要包括所述元素的父节点信息等,依据这些信息查询所述元素在所述节点关系表中的元素规则编号。
解析单元,根据所述元素规则编号生成的规则,反向解析,得到所述元素的全部上级父节点信息,或者解析所有节点的元素规则编号获得所述元素的全部下辖节点信息。
所述查询的依据是所述元素规则编号的生成原则。通过反向解析,能够查询找所述元素的全部父节点信息,最后,可以定位到在某棵树的具体的父节点信息,或者依据元素规则编号的生成原则,通过解析所有节点的元素规则编号,能够查询以所述节点为根节点的树节点信息。
本发明实施例查询单元根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号;解析单元根据所述元素规则编号生成的规则,不进行递归处理,而是通过反向解析,得到所述元素的全部上级父节点信息,或者解析所有节点的元素规则编号获得所述元素的全部下辖节点信息。可以根据元素规则编号的长度快速定位元素所处层级,因而在多树展示时,只需要根据节点关系表,按照不同的树编号和元素规则编号长度、元素规则进行排序,可直接生产多树,无需递归处理,提高了运行效率,节省了服务器资源。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种多树结构的数据库设计方法,其特征在于,包括:
建立节点信息表与节点关系表;
发生元素变更时,将变更元素的元素基本信息在所述节点信息表中进行相应变更;
根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;
根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
2.根据权利要求1所述的方法,其特征在于,查询某个特定元素的父节点时,包括:
根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号;
根据所述元素规则编号生成的规则,通过反向解析,得到所述元素的全部上级父节点信息,或者解析所有节点的元素规则编号获得所属元素的全部下辖节点信息。
3.根据权利要求1所述的方法,其特征在于,所述根据变更元素的变更类型,对节点关系表中,涉及变更的记录进行元素规则编号更新,包括:
若变更元素的变更类型为删除时,在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;
若变更元素的变更类型为修改时,在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;
若变更元素的元素变更类型为新增时,在节点关系表中插入相关树的记录作为元素规则编号的前缀。
4.根据权利要求1所述的方法,其特征在于,建立节点信息表与节点关系表,还包括:
将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,即元素编号;
以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。
5.一种多树结构的数据库设计装置,其特征在于,包括:
建立模块,建立节点信息表与节点关系表;
变更模块,将发生变更元素的元素基本信息在所述节点信息表中进行相应变更;
编号模块,根据所述变更元素的元素编号及所述变更元素的其他附带条件信息在所述节点关系表中查询不同树对应的元素规则编号,并基于所述变更元素的父节点元素编号和所述元素规则编号生成新的元素规则编号;
更新模块,根据变更元素的变更类型,对所述节点关系表中涉及变更的记录进行元素规则编号更新。
6.根据权利要求5所述的装置,其特征在于,查询某个特定元素的父节点时,还包括:
解析模块,用来对所述某个特定元素进行解析获取其父节点信息。
7.根据权利要求5所述的装置,其特征在于,更变模块,还包括:
删除单元,若变更元素的变更类型为删除时,在节点关系表中以空的新元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;
修改单元,若变更元素的变更类型为修改时,在节点关系表以新的元素规则编号替换元素及其所有下属子节点在相关树的记录作为元素规则编号的前缀;
新增单元,若变更元素的元素变更类型为新增时,在节点关系表中插入相关树的记录作为元素规则编号的前缀。
8.根据权利要求5所述的装置,其特征在于,建立模块完成建立节点信息表与节点关系表之前,还包括:
元素编号单元,将存在于所述树结构中所有的元素根据元素信息表及特定规则生成元素的唯一定长标识,即元素编号;
元素规则编号单元,以分隔符与所述元素编号为基础,按照一定规则生成元素规则编号,其中,根节点的元素规则编号为根节点元素编号。
9.根据权利要求6所述的装置,其特征在于,解析模块还包括:
查询单元,根据所述元素在所述节点关系表中的元素规则或其他附带条件信息,查询所述元素在所述节点关系表中的元素规则编号;
解析单元,根据所述元素规则编号生成的规则,通过反向解析,得到所述元素的全部上级父节点信息,或者解析所有节点的元素规则编号获得所述元素的全部下辖节点信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594713.5A CN104408067B (zh) | 2014-10-29 | 2014-10-29 | 一种多树结构的数据库设计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410594713.5A CN104408067B (zh) | 2014-10-29 | 2014-10-29 | 一种多树结构的数据库设计方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104408067A true CN104408067A (zh) | 2015-03-11 |
CN104408067B CN104408067B (zh) | 2019-08-13 |
Family
ID=52645699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410594713.5A Active CN104408067B (zh) | 2014-10-29 | 2014-10-29 | 一种多树结构的数据库设计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104408067B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809594A (zh) * | 2016-03-11 | 2016-07-27 | 武汉天量数据技术有限公司 | 一种灵活的知识点体系构建方法和系统 |
CN106446086A (zh) * | 2016-09-09 | 2017-02-22 | 中国南方电网有限责任公司电网技术研究中心 | 用于云计算环境的树结构操作方法和系统 |
WO2017161589A1 (zh) * | 2016-03-25 | 2017-09-28 | 华为技术有限公司 | 一种字符串序列的压缩索引方法及装置 |
CN109741034A (zh) * | 2019-01-03 | 2019-05-10 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
CN111506552A (zh) * | 2019-01-30 | 2020-08-07 | 宁波创元信息科技有限公司 | 一种树状结构的动态数据库设计方法及系统 |
CN111930958A (zh) * | 2020-07-13 | 2020-11-13 | 车智互联(北京)科技有限公司 | 一种图数据库构建方法、计算设备及可读存储介质 |
CN113821508A (zh) * | 2021-08-20 | 2021-12-21 | 达梦数据技术(江苏)有限公司 | 一种数组索引的实现方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043699A1 (en) * | 2005-08-17 | 2007-02-22 | Lixin Zhang | Method and system for visualizing data relationships using tree and grid layouts |
CN101408895A (zh) * | 2008-11-03 | 2009-04-15 | 金蝶软件(中国)有限公司 | 一种根据节点集合构造节点关系树的方法、装置及系统 |
CN102819536A (zh) * | 2011-09-27 | 2012-12-12 | 金蝶软件(中国)有限公司 | 树型数据处理方法及装置 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN102902811A (zh) * | 2012-10-19 | 2013-01-30 | 北京金和软件股份有限公司 | 一种快速生成树结构的数据库设计方法 |
CN103106198A (zh) * | 2011-11-09 | 2013-05-15 | 金蝶软件(中国)有限公司 | 树型结构实现方法和装置 |
CN103279544A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 树型结构数据在关系型数据库中的存储和查询方法及装置 |
-
2014
- 2014-10-29 CN CN201410594713.5A patent/CN104408067B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070043699A1 (en) * | 2005-08-17 | 2007-02-22 | Lixin Zhang | Method and system for visualizing data relationships using tree and grid layouts |
CN101408895A (zh) * | 2008-11-03 | 2009-04-15 | 金蝶软件(中国)有限公司 | 一种根据节点集合构造节点关系树的方法、装置及系统 |
CN102819536A (zh) * | 2011-09-27 | 2012-12-12 | 金蝶软件(中国)有限公司 | 树型数据处理方法及装置 |
CN103106198A (zh) * | 2011-11-09 | 2013-05-15 | 金蝶软件(中国)有限公司 | 树型结构实现方法和装置 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN102902811A (zh) * | 2012-10-19 | 2013-01-30 | 北京金和软件股份有限公司 | 一种快速生成树结构的数据库设计方法 |
CN103279544A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 树型结构数据在关系型数据库中的存储和查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
邹建: "《中文版SQL Server 2000开发与管理应用实例》", 31 August 2005, 人民邮电出版社 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105809594A (zh) * | 2016-03-11 | 2016-07-27 | 武汉天量数据技术有限公司 | 一种灵活的知识点体系构建方法和系统 |
WO2017161589A1 (zh) * | 2016-03-25 | 2017-09-28 | 华为技术有限公司 | 一种字符串序列的压缩索引方法及装置 |
CN106446086A (zh) * | 2016-09-09 | 2017-02-22 | 中国南方电网有限责任公司电网技术研究中心 | 用于云计算环境的树结构操作方法和系统 |
CN109741034A (zh) * | 2019-01-03 | 2019-05-10 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
CN109741034B (zh) * | 2019-01-03 | 2021-02-09 | 中国农业银行股份有限公司 | 一种网格树形组织管理方法及装置 |
CN111506552A (zh) * | 2019-01-30 | 2020-08-07 | 宁波创元信息科技有限公司 | 一种树状结构的动态数据库设计方法及系统 |
CN111506552B (zh) * | 2019-01-30 | 2023-10-31 | 宁波创元信息科技有限公司 | 一种树状结构的动态数据库设计方法及系统 |
CN111930958A (zh) * | 2020-07-13 | 2020-11-13 | 车智互联(北京)科技有限公司 | 一种图数据库构建方法、计算设备及可读存储介质 |
CN111930958B (zh) * | 2020-07-13 | 2023-12-01 | 车智互联(北京)科技有限公司 | 一种图数据库构建方法、计算设备及可读存储介质 |
CN113821508A (zh) * | 2021-08-20 | 2021-12-21 | 达梦数据技术(江苏)有限公司 | 一种数组索引的实现方法和系统 |
CN113821508B (zh) * | 2021-08-20 | 2023-09-22 | 达梦数据技术(江苏)有限公司 | 一种数组索引的实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104408067B (zh) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408067A (zh) | 一种多树结构的数据库设计方法及装置 | |
CN102662974B (zh) | 一种基于邻接节点树的网络图索引方法 | |
CN104809190B (zh) | 一种树形结构数据的数据库存取方法 | |
CN104123288A (zh) | 一种数据查询方法及装置 | |
CN103561133A (zh) | 一种ip地址归属信息索引方法及快速查询方法 | |
CN102096711A (zh) | 数据库中构建树形结构目录的方法 | |
CN104133867A (zh) | 分布式顺序表片内二级索引方法及系统 | |
CN102867059A (zh) | 一种树形结构中数据的处理方法和系统 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN102467521A (zh) | 一种易扩展的多级分类检索方法及系统 | |
CN103106198A (zh) | 树型结构实现方法和装置 | |
CN104573022A (zh) | 一种HBase的数据查询方法及装置 | |
CN102375827B (zh) | 一种对版本化的电网模型数据库进行快速加载的方法 | |
CN103092992B (zh) | 基于Key/Value型NoSQL数据库的矢量数据先序四叉树编码和索引方法 | |
CN103902544A (zh) | 一种数据处理方法及系统 | |
TWI549009B (zh) | 資料庫管理方法、資料庫管理系統,以及資料庫樹狀結構 | |
CN102750393B (zh) | 复合索引结构以及基于该复合索引结构的搜索方法 | |
CN106203494A (zh) | 一种基于内存计算的并行化聚类方法 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN104268298A (zh) | 一种创建数据库索引及其查询的方法 | |
CN107451204B (zh) | 一种数据查询方法、装置及设备 | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN108628969B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |