CN106815346A - 一种分级码多级数据的同步迁移方法 - Google Patents
一种分级码多级数据的同步迁移方法 Download PDFInfo
- Publication number
- CN106815346A CN106815346A CN201710033966.9A CN201710033966A CN106815346A CN 106815346 A CN106815346 A CN 106815346A CN 201710033966 A CN201710033966 A CN 201710033966A CN 106815346 A CN106815346 A CN 106815346A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- code
- object table
- classified
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分级码多级数据的同步迁移方法,以分级码来确定上下级关系的多级数据,再进行数据迁移,其实现过程为:首先确定迁移数据在源表A中的位置;找出当前数据在源表A中所在树的根节点C;查找根节点C是否存在于目标表B中;若存在则继续找原数据下一级是否存在,若不存在则插入并查找下一级数据,重复该过程直至插入迁移数据。本发明的一种分级码多级数据的同步迁移方法与现有技术相比,使多级字典迁移过程中能保持其上下级关系完整,并能同步迁移前后的上下级关系,避免出现没有上级而无法展示的情况,实用性强。
Description
技术领域
本发明涉及计算机应用技术领域,具体地说是一种分级码多级数据的同步迁移方法。
背景技术
对于一组多级数据,通过分级码来确定上下级关系,且需要申请、审批过程,才能成为正式的合法数据,且申请数据和正式数据分别保存在表A和表B中,但表B中的正式数据入口并非只有一个,集团数据管理员有权限进行直接维护包括操作新增、调整结构,下级用户在新增申请数据A时,需要选择其上级数据,其上级数据必须是已存在的正式数据。
基于此,在现有技术中,当多级字典迁移时,无法持其上下级关系完整,且不易同步迁移前后的上下级关系,容易出现没有上级而无法展示的情况。
因而,本发明提供一种通用数据交换接口的实现方法,本方法适用于在B中数据随时变化的情况下,保证表A中的数据正常添加,并保证所添加的数据所在的上下级结构正确。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、可广泛应用于异构数据集成与交换系统中的分级码多级数据的同步迁移方法。
一种分级码多级数据的同步迁移方法,以分级码来确定上下级关系的多级数据,再进行数据迁移,其实现过程为:
首先确定迁移数据在源表A中的位置;
找出当前数据在源表A中所在树的根节点C;
查找根节点C是否存在于目标表B中;
若存在则继续找原数据下一级是否存在,若不存在则插入并查找下一级数据,重复该过程直至插入迁移数据。
所述迁移数据为多级数据,该多级数据通过分级码K的形式确定上下级关系,分级码K每一级的位数长度固定,且迁移数据前后均有能标识唯一性的字段。
在确定迁移数据在源表A中的位置是指获取当前数据,根据其分级码K确定其所在位置,即根据分级码K确定当前数据为第几级数据。
确定迁移数据在表A中的位置的具体过程为:取出表A中要迁移的当前数据,用其分级码K1除以每一级分级码长度得到其在A中的级数m;取迁移数据分级码的前n位获取其所在树的根节点分级码K2,即当前数据所在级数为i,K2为K1的前i*n位。
获取树的根节点C的过程为:根据分级码和分级码的位数,找到当前数据在源表中所在树的一级节点,即根节点,保存为上级节点C。
根据获取的根节点C,确定该根节点是否在目标表B中,若存在则获取当前数据所在树的第二级节点,并保存为节点C,若不存在则根据当前C节点的级数在目标表B中计算当前节点C应有的分级码,并将节点C插入目标表B中,然后获取当前数据所在树的第二级节点,并保存为节点C,重复该过程直至节点C为当前节点。
在获取树的根节点C后,确定该树的根节点C在目标表B中是否存在的过程为:根据获取的树的根节点C,获取树的根节点C的唯一标识字段c,根据该唯一标识字段c,去目标表B中检索是否存在唯一标识为c的节点。
树的根节点C是否存在于目标表B中具体分析过程为:
若C节点在目标表B中存在,判断当前数据所在级数i是否小于m;
若i小于m,则i=i+1,获取目标表B中与C相同的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的节点存为C;
若i等于m,则说明迁移数据在目标表B中存在;
若C节点在目标表B中不存在,则判断i是否等于1:若i等于1,则查找出目标表B中一级数据当前最大分级码K3;若i大于1则查找出目标表B中上级为C1的数据的最大分级码K3,最后把C节点的数据插入到目标表B中且分级码改为K3+1;
判断i是否小于m:若i小于m则i=i+1,获取目标表B中新插入的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的的节点存为C;
若i等于m,则说明迁移数据是当前数据,在以C1为上级节点插入当前数据。
本发明的一种分级码多级数据的同步迁移方法和现有技术相比,具有以下有益效果:
本发明的一种分级码多级数据的同步迁移方法,使多级字典迁移过程中能保持其上下级关系完整,并能同步迁移前后的上下级关系,避免出现没有上级而无法展示的情况;本方法可扩展在处理迁移数据并同步其上级节点时,可设置修改上级数据属性,以区分是所需数据还是为保证数据树完整性而同步过来的辅助数据,该属性可用于权限的设置,这样既保证了数据权限的安全性,有使得所需数据信息的完整性,实用性强,适用范围广泛,易于推广。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
一种分级码多级数据的同步迁移方法,本发明提供了一种逐条同步部分多级字典数据时保持上下级关系完整性的方法,以分级码来确定上下级关系的多级数据,在进行部分数据迁移,且要保证数据所在树的完整性时,可根据本方法确定数据所在的位置,该方法通过确定迁移数据在源表位置、找出数据所在树的根节点、查找根节点是否存在与目标表、若存在则继续找原数据下一级是否存在,若不存在则插入并查找下一级数据,重复该过程直至插入迁移数据的方式实现。
具体的,下面以从表A迁移数据到表B为例,其具体实现过程如下:
确定迁移数据在表A中的位置;获取当前数据,首先根据其分级码确定其所在位置,即根据分级码确定当前数据为第几级数据。
找出当前数据在A表中所在树的根节点C;根据分级码和分级码的位数,找到当前数据在A表中所在树的一级节点,即根节点,保存为上级节点C。
查找根节点在表B中是否存在;
若表B中存在根节点则继续找原数据的第二级是否存在,若不存在则插入并继续查找第二级数据,重复该过程直至插入迁移数据。
获取的根节点C是否在表B中,若存在则获取当前数据所在树的第二级节点,并保存为节点C,若不存在则根据当前C节点的级数在表B中计算当前节点C应有的分级码,并将节点C插入表B中,然后获取当前数据所在树的第二级节点,并保存为节点C。
所述迁移数据为多级数据,该多级数据通过分级码K的形式确定上下级关系,分级码K每一级的位数长度固定,且迁移数据前后均有能标识唯一性的字段。
确定迁移数据在表A中的位置的具体过程为:取出表A中要迁移的当前数据,用其分级码K1除以每一级分级码长度得到其在A中的级数m;取迁移数据分级码的前n位获取其所在树的根节点分级码K2,即当前数据所在级数为i,K2为K1的前i*n位。
在获取树的根节点C后,确定该树的根节点C在目标表B中是否存在的过程为:根据获取的树的根节点C,获取树的根节点C的唯一标识字段c,根据该唯一标识字段c,去目标表B中检索是否存在唯一标识为c的节点。
树的根节点C是否存在于目标表B中具体分析过程为:
若C节点在目标表B中存在,判断当前数据所在级数i是否小于m;
若i小于m,则i=i+1,获取目标表B中与C相同的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的节点存为C;
若i等于m,则说明迁移数据在目标表B中存在;
若C节点在目标表B中不存在,则判断i是否等于1:若i等于1,则查找出目标表B中一级数据当前最大分级码K3;若i大于1则查找出目标表B中上级为C1的数据的最大分级码K3,最后把C节点的数据插入到目标表B中且分级码改为K3+1;
判断i是否小于m:若i小于m则i=i+1,获取目标表B中新插入的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的的节点存为C;
若i等于m,则说明迁移数据是当前数据,在以C1为上级节点插入当前数据。
重复过程三、四直至插入迁移数据
在本方法执行同时可检验所迁移数据分加码的准确性,并保证数据结构的完整性和规范性。本方法的核心算法为计算每级节点的分级码,在数据迁移的过程中,保证数据的上下级结构不变的情况下,重新生成分级码,以保证数据始终在一颗完整的数据树中。
在一组多级数据,通过分级码来确定上下级关系,且需要申请、审批过程,才能成为正式的合法数据,且申请数据和正式数据分别保存在表A和表B中,但表B中的正式数据入口并非只有一个,集团数据管理员有权限进行直接维护包括操作新增、调整结构,下级用户在新增申请数据A时,需要选择其上级数据,其上级数据必须时已存在的正式数据。本方法适用于在B中数据随时变化的情况下,保证表A中的数据正常添加,并保证所添加的数据所在的上下级结构正确。
下面将通过一个实例说明本方法的作用,和使用方法:
现在有单位表申请表HSDWAPP和单位表HSDW,需求为:在HSDWAPP添加数据,选择的上级数据来源于HSDW表,HSDW表中的数据来源为HSDWAPP表中审批通过后插入和直接维护。
HSDWAPP表:
HSDW表:
该过程两次用到本方法,首先在在HSDWAPP表新增数据时,需要判断所选择的上级数据是否存在于HSDWAPP,若不存在则需要从HSDW表中迁移到HSDWAPP表中,直至其所在的一颗完整树,都迁移到HSDWAPP表中;其次在申请表中的数据审批通过后插入HSDW表是,分级码需要重新计算,亦用到了本方法;本方法的核心在于计算分级码,并在计算过程中将数据所在的树完整插入目标表中。
向HSDWAPP表中插入树时的核心代码如下,参数为所选的上级单位编号:
基于上述方法,当两个数据源进行相互数据迁移时,该方法能同步上下级关系数据的变化。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (9)
1.一种分级码多级数据的同步迁移方法,其特征在于,以分级码来确定上下级关系的多级数据,再进行数据迁移,其实现过程为:
首先确定迁移数据在源表A中的位置;
找出当前数据在源表A中所在树的根节点C;
查找根节点C是否存在于目标表B中;
若存在则继续找原数据下一级是否存在,若不存在则插入并查找下一级数据,重复该过程直至插入迁移数据。
2.根据权利要求1所述的一种分级码多级数据的同步迁移方法,其特征在于,所述迁移数据为多级数据,该多级数据通过分级码K的形式确定上下级关系,分级码K每一级的位数长度固定,且迁移数据前后均有能标识唯一性的字段。
3.根据权利要求1所述的一种分级码多级数据的同步迁移方法,其特征在于,在确定迁移数据在源表A中的位置是指获取当前数据,根据其分级码K确定其所在位置,即根据分级码K确定当前数据为第几级数据。
4.根据权利要求1-3任一所述的一种分级码多级数据的同步迁移方法,其特征在于,确定迁移数据在表A中的位置的具体过程为:取出表A中要迁移的当前数据,用其分级码K1除以每一级分级码长度得到其在A中的级数m;取迁移数据分级码的前n位获取其所在树的根节点分级码K2,即当前数据所在级数为i,K2为K1的前i*n位。
5.根据权利要求4所述的一种分级码多级数据的同步迁移方法,其特征在于,获取树的根节点C的过程为:根据分级码和分级码的位数,找到当前数据在源表中所在树的一级节点,即根节点,保存为上级节点C。
6.根据权利要求4所述的一种分级码多级数据的同步迁移方法,其特征在于,根据获取的根节点C,确定该根节点是否在目标表B中,若存在则获取当前数据所在树的第二级节点,并保存为节点C,若不存在则根据当前C节点的级数在目标表B中计算当前节点C应有的分级码,并将节点C插入目标表B中,然后获取当前数据所在树的第二级节点,并保存为节点C,重复该过程直至节点C为当前节点。
7.根据权利要求6所述的一种分级码多级数据的同步迁移方法,其特征在于,在获取树的根节点C后,确定该树的根节点C在目标表B中是否存在的过程为:根据获取的树的根节点C,获取树的根节点C的唯一标识字段c,根据该唯一标识字段c,去目标表B中检索是否存在唯一标识为c的节点。
8.根据权利要求6所述的一种分级码多级数据的同步迁移方法,其特征在于,树的根节点C是否存在于目标表B中具体分析过程为:
若C节点在目标表B中存在,判断当前数据所在级数i是否小于m;
若i小于m,则i=i+1,获取目标表B中与C相同的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的节点存为C;
若i等于m,则说明迁移数据在目标表B中存在;
若C节点在目标表B中不存在,则判断i是否等于1:若i等于1,则查找出目标表B中一级数据当前最大分级码K3;若i大于1则查找出目标表B中上级为C1的数据的最大分级码K3,最后把C节点的数据插入到目标表B中且分级码改为K3+1;
判断i是否小于m:若i小于m则i=i+1,获取目标表B中新插入的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的的节点存为C;
若i等于m,则说明迁移数据是当前数据,在以C1为上级节点插入当前数据。
9.根据权利要求7所述的一种分级码多级数据的同步迁移方法,其特征在于,树的根节点C是否存在于目标表B中具体分析过程为:
若C节点在目标表B中存在,判断当前数据所在级数i是否小于m;
若i小于m,则i=i+1,获取目标表B中与C相同的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的节点存为C;
若i等于m,则说明迁移数据在目标表B中存在;
若C节点在目标表B中不存在,则判断i是否等于1:若i等于1,则查找出目标表B中一级数据当前最大分级码K3;若i大于1则查找出目标表B中上级为C1的数据的最大分级码K3,最后把C节点的数据插入到目标表B中且分级码改为K3+1;
判断i是否小于m:若i小于m则i=i+1,获取目标表B中新插入的数据C1,并获取K1的前i*n位为新的分级码K2,并从源表A中查出分级码为K2的的节点存为C;
若i等于m,则说明迁移数据是当前数据,在以C1为上级节点插入当前数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710033966.9A CN106815346A (zh) | 2017-01-18 | 2017-01-18 | 一种分级码多级数据的同步迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710033966.9A CN106815346A (zh) | 2017-01-18 | 2017-01-18 | 一种分级码多级数据的同步迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106815346A true CN106815346A (zh) | 2017-06-09 |
Family
ID=59111191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710033966.9A Pending CN106815346A (zh) | 2017-01-18 | 2017-01-18 | 一种分级码多级数据的同步迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815346A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110839140A (zh) * | 2018-08-17 | 2020-02-25 | 视联动力信息技术股份有限公司 | 监控目录的生成方法和装置 |
CN110909071A (zh) * | 2018-09-17 | 2020-03-24 | 北京国双科技有限公司 | 数据同步方法、装置以及系统 |
CN112141648A (zh) * | 2020-10-12 | 2020-12-29 | 南京北路智控科技股份有限公司 | 一种煤流控制方法、系统及排序方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686121A (zh) * | 2008-09-25 | 2010-03-31 | 北大方正集团有限公司 | 一种数据同步方法、系统及装置 |
CN102012903A (zh) * | 2009-09-04 | 2011-04-13 | 斯必克有限公司 | 用于在一个关系数据库中组织分层数据的方法和设备 |
US8145674B2 (en) * | 2007-11-26 | 2012-03-27 | International Business Machines Corporation | Structure based storage, query, update and transfer of tree-based documents |
CN102622438A (zh) * | 2012-03-02 | 2012-08-01 | 浪潮集团山东通用软件有限公司 | 一种可自由设计字典级次和长度的数据结构和实现方法 |
CN103985030A (zh) * | 2014-04-21 | 2014-08-13 | 浪潮通用软件有限公司 | 一种自由定义数据级次及长度的多级字典技术实现方法 |
-
2017
- 2017-01-18 CN CN201710033966.9A patent/CN106815346A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145674B2 (en) * | 2007-11-26 | 2012-03-27 | International Business Machines Corporation | Structure based storage, query, update and transfer of tree-based documents |
CN101686121A (zh) * | 2008-09-25 | 2010-03-31 | 北大方正集团有限公司 | 一种数据同步方法、系统及装置 |
CN102012903A (zh) * | 2009-09-04 | 2011-04-13 | 斯必克有限公司 | 用于在一个关系数据库中组织分层数据的方法和设备 |
CN102622438A (zh) * | 2012-03-02 | 2012-08-01 | 浪潮集团山东通用软件有限公司 | 一种可自由设计字典级次和长度的数据结构和实现方法 |
CN103985030A (zh) * | 2014-04-21 | 2014-08-13 | 浪潮通用软件有限公司 | 一种自由定义数据级次及长度的多级字典技术实现方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110839140A (zh) * | 2018-08-17 | 2020-02-25 | 视联动力信息技术股份有限公司 | 监控目录的生成方法和装置 |
CN110839140B (zh) * | 2018-08-17 | 2021-09-10 | 视联动力信息技术股份有限公司 | 监控目录的生成方法和装置 |
CN110909071A (zh) * | 2018-09-17 | 2020-03-24 | 北京国双科技有限公司 | 数据同步方法、装置以及系统 |
CN112141648A (zh) * | 2020-10-12 | 2020-12-29 | 南京北路智控科技股份有限公司 | 一种煤流控制方法、系统及排序方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2317081C (en) | Estimation of column cardinality in a partitioned relational database | |
AU2002229734B2 (en) | Database system and query optimiser | |
CN103823823B (zh) | 基于频繁项集挖掘算法的反规范化策略选择方法 | |
CN106815346A (zh) | 一种分级码多级数据的同步迁移方法 | |
CN102841891B (zh) | 一种树状结构节点的排序方法、装置及查询系统 | |
CN109145003B (zh) | 一种构建知识图谱的方法及装置 | |
CN104731922A (zh) | 基于分布式数据库HBase的结构化数据的快速检索系统及方法 | |
CN107679049A (zh) | 获取树形结构数据两节点间路径的方法、装置及系统 | |
CN104834654A (zh) | 使用树形索引搜索节点的方法和装置 | |
CN103745031A (zh) | 基于gis模式的输电线路房屋分布图生成方法 | |
CN104679829A (zh) | 对车牌号进行快速搜索的方法及装置 | |
CN103714154A (zh) | 一种确定最佳聚类数的方法 | |
CN103927325B (zh) | 一种对url进行分类的方法及装置 | |
CN104615782A (zh) | 基于滑动窗口最大匹配算法的地址匹配方法 | |
CN108197187A (zh) | 查询语句的优化方法、装置、存储介质和计算机设备 | |
CN107577744A (zh) | 非标地址自动匹配模型、匹配方法以及模型建立方法 | |
CN108052743B (zh) | 一种阶梯接近中心度确定方法及系统 | |
CN104268560A (zh) | 一种基于遥感解译的土地利用识别方法 | |
CN105025013A (zh) | 基于优先级Trie树的动态IP匹配模型 | |
CN103761298B (zh) | 一种基于分布式架构的实体匹配方法 | |
CN108776660A (zh) | 一种基于ArcGIS的批量匹配道路属性的方法 | |
CN111090630A (zh) | 基于多源空间点数据的数据融合处理方法 | |
CN105956203A (zh) | 一种信息存储方法、信息查询方法、搜索引擎装置 | |
CN105654106A (zh) | 一种决策树生成方法及系统 | |
Gorbunov et al. | Rearrangement and inference of chromosome structures |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170609 |