1.一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,以分級(jí)碼來確定上下級(jí)關(guān)系的多級(jí)數(shù)據(jù),再進(jìn)行數(shù)據(jù)遷移,其實(shí)現(xiàn)過程為:
首先確定遷移數(shù)據(jù)在源表A中的位置;
找出當(dāng)前數(shù)據(jù)在源表A中所在樹的根節(jié)點(diǎn)C;
查找根節(jié)點(diǎn)C是否存在于目標(biāo)表B中;
若存在則繼續(xù)找原數(shù)據(jù)下一級(jí)是否存在,若不存在則插入并查找下一級(jí)數(shù)據(jù),重復(fù)該過程直至插入遷移數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,所述遷移數(shù)據(jù)為多級(jí)數(shù)據(jù),該多級(jí)數(shù)據(jù)通過分級(jí)碼K的形式確定上下級(jí)關(guān)系,分級(jí)碼K每一級(jí)的位數(shù)長度固定,且遷移數(shù)據(jù)前后均有能標(biāo)識(shí)唯一性的字段。
3.根據(jù)權(quán)利要求1所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,在確定遷移數(shù)據(jù)在源表A中的位置是指獲取當(dāng)前數(shù)據(jù),根據(jù)其分級(jí)碼K確定其所在位置,即根據(jù)分級(jí)碼K確定當(dāng)前數(shù)據(jù)為第幾級(jí)數(shù)據(jù)。
4.根據(jù)權(quán)利要求1-3任一所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,確定遷移數(shù)據(jù)在表A中的位置的具體過程為:取出表A中要遷移的當(dāng)前數(shù)據(jù),用其分級(jí)碼K1除以每一級(jí)分級(jí)碼長度得到其在A中的級(jí)數(shù)m;取遷移數(shù)據(jù)分級(jí)碼的前n位獲取其所在樹的根節(jié)點(diǎn)分級(jí)碼K2,即當(dāng)前數(shù)據(jù)所在級(jí)數(shù)為i,K2為K1的前i*n位。
5.根據(jù)權(quán)利要求4所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,獲取樹的根節(jié)點(diǎn)C的過程為:根據(jù)分級(jí)碼和分級(jí)碼的位數(shù),找到當(dāng)前數(shù)據(jù)在源表中所在樹的一級(jí)節(jié)點(diǎn),即根節(jié)點(diǎn),保存為上級(jí)節(jié)點(diǎn)C。
6.根據(jù)權(quán)利要求4所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,根據(jù)獲取的根節(jié)點(diǎn)C,確定該根節(jié)點(diǎn)是否在目標(biāo)表B中,若存在則獲取當(dāng)前數(shù)據(jù)所在樹的第二級(jí)節(jié)點(diǎn),并保存為節(jié)點(diǎn)C,若不存在則根據(jù)當(dāng)前C節(jié)點(diǎn)的級(jí)數(shù)在目標(biāo)表B中計(jì)算當(dāng)前節(jié)點(diǎn)C應(yīng)有的分級(jí)碼,并將節(jié)點(diǎn)C插入目標(biāo)表B中,然后獲取當(dāng)前數(shù)據(jù)所在樹的第二級(jí)節(jié)點(diǎn),并保存為節(jié)點(diǎn)C,重復(fù)該過程直至節(jié)點(diǎn)C為當(dāng)前節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求6所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,在獲取樹的根節(jié)點(diǎn)C后,確定該樹的根節(jié)點(diǎn)C在目標(biāo)表B中是否存在的過程為:根據(jù)獲取的樹的根節(jié)點(diǎn)C,獲取樹的根節(jié)點(diǎn)C的唯一標(biāo)識(shí)字段c,根據(jù)該唯一標(biāo)識(shí)字段c,去目標(biāo)表B中檢索是否存在唯一標(biāo)識(shí)為c的節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求6所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,樹的根節(jié)點(diǎn)C是否存在于目標(biāo)表B中具體分析過程為:
若C節(jié)點(diǎn)在目標(biāo)表B中存在,判斷當(dāng)前數(shù)據(jù)所在級(jí)數(shù)i是否小于m;
若i小于m,則i=i+1,獲取目標(biāo)表B中與C相同的數(shù)據(jù)C1,并獲取K1的前i*n位為新的分級(jí)碼K2,并從源表A中查出分級(jí)碼為K2的節(jié)點(diǎn)存為C;
若i等于m,則說明遷移數(shù)據(jù)在目標(biāo)表B中存在;
若C節(jié)點(diǎn)在目標(biāo)表B中不存在,則判斷i是否等于1:若i等于1,則查找出目標(biāo)表B中一級(jí)數(shù)據(jù)當(dāng)前最大分級(jí)碼K3;若i大于1則查找出目標(biāo)表B中上級(jí)為C1的數(shù)據(jù)的最大分級(jí)碼K3,最后把C節(jié)點(diǎn)的數(shù)據(jù)插入到目標(biāo)表B中且分級(jí)碼改為K3+1;
判斷i是否小于m:若i小于m則i=i+1,獲取目標(biāo)表B中新插入的數(shù)據(jù)C1,并獲取K1的前i*n位為新的分級(jí)碼K2,并從源表A中查出分級(jí)碼為K2的的節(jié)點(diǎn)存為C;
若i等于m,則說明遷移數(shù)據(jù)是當(dāng)前數(shù)據(jù),在以C1為上級(jí)節(jié)點(diǎn)插入當(dāng)前數(shù)據(jù)。
9.根據(jù)權(quán)利要求7所述的一種分級(jí)碼多級(jí)數(shù)據(jù)的同步遷移方法,其特征在于,樹的根節(jié)點(diǎn)C是否存在于目標(biāo)表B中具體分析過程為:
若C節(jié)點(diǎn)在目標(biāo)表B中存在,判斷當(dāng)前數(shù)據(jù)所在級(jí)數(shù)i是否小于m;
若i小于m,則i=i+1,獲取目標(biāo)表B中與C相同的數(shù)據(jù)C1,并獲取K1的前i*n位為新的分級(jí)碼K2,并從源表A中查出分級(jí)碼為K2的節(jié)點(diǎn)存為C;
若i等于m,則說明遷移數(shù)據(jù)在目標(biāo)表B中存在;
若C節(jié)點(diǎn)在目標(biāo)表B中不存在,則判斷i是否等于1:若i等于1,則查找出目標(biāo)表B中一級(jí)數(shù)據(jù)當(dāng)前最大分級(jí)碼K3;若i大于1則查找出目標(biāo)表B中上級(jí)為C1的數(shù)據(jù)的最大分級(jí)碼K3,最后把C節(jié)點(diǎn)的數(shù)據(jù)插入到目標(biāo)表B中且分級(jí)碼改為K3+1;
判斷i是否小于m:若i小于m則i=i+1,獲取目標(biāo)表B中新插入的數(shù)據(jù)C1,并獲取K1的前i*n位為新的分級(jí)碼K2,并從源表A中查出分級(jí)碼為K2的的節(jié)點(diǎn)存為C;
若i等于m,則說明遷移數(shù)據(jù)是當(dāng)前數(shù)據(jù),在以C1為上級(jí)節(jié)點(diǎn)插入當(dāng)前數(shù)據(jù)。