一种分级码多级数据的同步迁移方法与流程

文档序号:12596572阅读:215来源:国知局

本发明涉及计算机应用技术领域,具体地说是一种分级码多级数据的同步迁移方法。



背景技术:

对于一组多级数据,通过分级码来确定上下级关系,且需要申请、审批过程,才能成为正式的合法数据,且申请数据和正式数据分别保存在表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表中插入树时的核心代码如下,参数为所选的上级单位编号:

基于上述方法,当两个数据源进行相互数据迁移时,该方法能同步上下级关系数据的变化。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

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