專利名稱::全局唯一數(shù)據(jù)標(biāo)志符的生成方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于企業(yè)信息管理系統(tǒng)領(lǐng)域(ERP),涉及信息管理系統(tǒng)領(lǐng)域的數(shù)據(jù)號(hào)段生成與分配技術(shù),尤其涉及一種全局唯一數(shù)據(jù)標(biāo)志符的生成方法和系統(tǒng)。
背景技術(shù):
:企業(yè)信息管理系統(tǒng)分別獨(dú)立部署運(yùn)行在集團(tuán)總部和各子公司局域網(wǎng)絡(luò)環(huán)境中,但是作為一體化的信息管理系統(tǒng),要求數(shù)據(jù)標(biāo)志(如職工工號(hào)、往來客戶ID)在整個(gè)企業(yè)集團(tuán)信息管理系統(tǒng)中全集團(tuán)唯一,從而保證集團(tuán)總部制定的基礎(chǔ)數(shù)據(jù)下發(fā)到各個(gè)子公司,以及各子公司的業(yè)務(wù)數(shù)據(jù)上報(bào)到集團(tuán)總部后均能正確識(shí)別各個(gè)數(shù)據(jù)實(shí)體。由于地理位置、網(wǎng)絡(luò)環(huán)境等客觀原因,企業(yè)信息管理系統(tǒng)無法集中部署在企業(yè)集團(tuán)總部中,需要分別部署在子公司的內(nèi)部局域網(wǎng)絡(luò)環(huán)境,子公司內(nèi)部網(wǎng)路之間邏輯隔離,子公司局域網(wǎng)可以通過網(wǎng)關(guān),使用廣域網(wǎng)訪問集團(tuán)總部應(yīng)用服務(wù)器,但網(wǎng)絡(luò)通信質(zhì)量較差,網(wǎng)絡(luò)傳輸不穩(wěn)定。綜上所述,由于企業(yè)信息管理系統(tǒng)分別部署在不同的局域網(wǎng),這些局域網(wǎng)絡(luò)之間數(shù)據(jù)傳輸質(zhì)量較差,需要生成特定的全集團(tuán)唯一的數(shù)據(jù)標(biāo)志符時(shí),試圖逐一遍歷各局域網(wǎng)中的業(yè)務(wù)數(shù)據(jù)后生成數(shù)據(jù)唯一標(biāo)志符的方法在當(dāng)前運(yùn)行環(huán)境中行不通。而傳統(tǒng)的生成全局唯一數(shù)據(jù)標(biāo)志符方法也不適合企業(yè)集團(tuán)信息對(duì)可擴(kuò)展性或者運(yùn)行性能指標(biāo)要求。傳統(tǒng)的生成全局唯一數(shù)據(jù)標(biāo)志符方法主要有兩種一種是層次碼生成法,另一種是GUID法。1、層次碼生成法層次碼生成法典型使用場(chǎng)景是手機(jī)號(hào)碼分配,手機(jī)號(hào)碼由以下部分組成工信部劃分給電信運(yùn)營(yíng)商的號(hào)段,電信運(yùn)營(yíng)商按行政區(qū)域分配的號(hào)段,以及電信運(yùn)營(yíng)商區(qū)域子公司生成的自增長(zhǎng)序列值。由于企業(yè)集團(tuán)的信息管理系統(tǒng)涉及的數(shù)據(jù)唯一標(biāo)志符種類繁多,包括組織ID、職工ID、客戶ID、會(huì)計(jì)科目ID、預(yù)算科目ID、資產(chǎn)ID等等,采用層次碼生成法會(huì)導(dǎo)致號(hào)段分配不均和號(hào)段不足問題,因此不適合信息系統(tǒng)的需求。2、⑶ID生成法⑶ID生成法是目前最為廣泛采用全球唯一標(biāo)志符生成方法,一般是根據(jù)網(wǎng)卡信息和系統(tǒng)時(shí)鐘生成的32個(gè)字節(jié)長(zhǎng)度的字符串。使用GUID方法能滿足集團(tuán)企業(yè)系統(tǒng)管理系統(tǒng)的需求,但是GUID標(biāo)志符是有一定長(zhǎng)度的字符串格式,如果作為數(shù)據(jù)唯一標(biāo)志符作為數(shù)據(jù)表關(guān)鍵保存到關(guān)系數(shù)據(jù)庫,在數(shù)據(jù)檢索和多表關(guān)聯(lián)查詢操作中引起效率低下,直接影響企業(yè)信息系統(tǒng)整體性能,進(jìn)而影響用戶體驗(yàn)效果。
發(fā)明內(nèi)容本發(fā)明的目的是克服上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種全局唯一數(shù)據(jù)標(biāo)志符的生成方法和系統(tǒng),在保證企業(yè)集團(tuán)內(nèi)部數(shù)據(jù)標(biāo)識(shí)符全局唯一的同時(shí),也擁有良好的程序易擴(kuò)展和較高的數(shù)據(jù)庫查詢速度的特性。為了本發(fā)明的目的,本發(fā)明的全局唯一數(shù)據(jù)標(biāo)志符的生成方法包括以下步驟號(hào)段生成步驟,在企業(yè)總部的信息管理系統(tǒng)中執(zhí)行,用于根據(jù)預(yù)定義的號(hào)段條目屬性生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成步驟,在所述各個(gè)子公司的信息管理系統(tǒng)中執(zhí)行,用于根據(jù)分配給所述各個(gè)子公司的信息管理系統(tǒng)的所述號(hào)段區(qū)間生成未使用的號(hào)碼。所述號(hào)段生成步驟進(jìn)一步包括號(hào)段配置步驟,用于定義所述號(hào)段條目屬性,生成號(hào)段條目列表;號(hào)段分配步驟,用于根據(jù)所述號(hào)段條目列表,對(duì)所述各個(gè)子公司的信息管理系統(tǒng)進(jìn)行號(hào)段分配,生成號(hào)段分配列表。進(jìn)一步地,所述號(hào)段條目屬性包括表名稱,對(duì)應(yīng)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表名稱;字段名稱對(duì)應(yīng)關(guān)系數(shù)據(jù)表的字段名稱;號(hào)段最小值所述號(hào)段區(qū)間的起始值;號(hào)段最大值所述號(hào)段區(qū)間的最大值;號(hào)段步長(zhǎng)所述號(hào)段分配的區(qū)間長(zhǎng)度;其中,所述表名稱和所述字段名稱在所述號(hào)段條目列表中不能重復(fù),所述號(hào)段最大值必須大于所述號(hào)段最小值,所述號(hào)段步長(zhǎng)必須小于號(hào)段最大值減去號(hào)段最小值。進(jìn)一步地,所述號(hào)段分配步驟還包括以下步驟步驟1輸入子公司代號(hào),所述子公司代號(hào)為所述子公司的信息管理系統(tǒng)代號(hào);步驟2選擇所述號(hào)段條目列表中的所述表名稱和所述字段名稱;步驟3過濾所選擇的所述號(hào)段條目列表中“表名稱”=“當(dāng)前選擇的表名稱”并且“字段名稱”=“當(dāng)前選擇的字段名稱”,如果存在記錄,則計(jì)算得到所述記錄中符合已分配最大值的屬性的最大值,將所述最大值加1后保存到變量maxl,所述已分配最大值為本次分配給所述子公司的號(hào)段的最大值;如果沒有對(duì)應(yīng)記錄,則從所選擇的所述號(hào)段條目列表中取出號(hào)段最小值保存到變量maxl;步驟4JEmaxl作為已分配最小值,所述已分配最小值為本次分配給所述子公司的號(hào)段的最小值;步驟5把maxl加上當(dāng)前選擇的所述號(hào)段條目的所述號(hào)段步長(zhǎng)的計(jì)算結(jié)果作為所述已分配最大值;將所述子公司代號(hào)、表名稱、字段名稱、已分配最小值和已分配最大值作為所述號(hào)段分配列表的屬性。在所述號(hào)碼生成步驟中,生成當(dāng)前子公司所屬號(hào)段分配列表,所述列表包括從所述號(hào)段分配列表中選擇的當(dāng)前子公司的所述表名稱、字段名稱、已分配最小值、已分配最大值、獲取的所選擇號(hào)段的當(dāng)前使用狀態(tài)、當(dāng)前已使用號(hào)碼,其中,所述當(dāng)前已使用號(hào)碼為當(dāng)前號(hào)段中已使用的最大號(hào)碼;通過查找所述號(hào)段分配列表中與生成號(hào)碼對(duì)應(yīng)的所述子公司代號(hào)、表名稱和字段名稱所在的號(hào)段,步驟A.如果存在記錄,則根據(jù)所選擇號(hào)段的當(dāng)前使用狀態(tài)和所述已分配最大值,生成新號(hào)碼,并保存到所述當(dāng)前已使用號(hào)碼;步驟B.如果存在記錄,但此記錄沒有在所述當(dāng)前子公司所屬號(hào)段分配列表中,則在所述列表中增加記錄,并重新執(zhí)行A步驟;步驟C.如果不存在記錄,則發(fā)出“未分配號(hào)段”的信息。其中,所述步驟A還進(jìn)一步包括步驟Al.如果存在當(dāng)前使用狀態(tài)為正在使用的記錄,則將所述當(dāng)前已使用號(hào)碼加1作為新號(hào)碼;步驟A2.如果不存在當(dāng)前使用狀態(tài)為正在使用的記錄,則查找當(dāng)前使用狀態(tài)為未使用的記錄,將已分配最小值作為新號(hào)碼。所述號(hào)碼生成步驟還包括定時(shí)對(duì)空閑號(hào)碼進(jìn)行回收。所述號(hào)碼生成步驟還包括定時(shí)計(jì)算當(dāng)前子公司所屬號(hào)段分配列表中未使用號(hào)段與當(dāng)前總號(hào)段的比例,如果小于預(yù)定閥值,則向所述企業(yè)總部的信息管理系統(tǒng)發(fā)出號(hào)段預(yù)警通知。本發(fā)明還涉及一種全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng),包括以下單元號(hào)段生成單元,位于企業(yè)總部的信息管理系統(tǒng)中,用于根據(jù)預(yù)定義的號(hào)段條目屬性生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成單元,位于所述各個(gè)子公司的信息管理系統(tǒng)中,用于根據(jù)分配給所述各個(gè)子公司的信息管理系統(tǒng)的所述號(hào)段區(qū)間生成未使用的號(hào)碼。進(jìn)一步地,所述號(hào)段生成單元還包括以下子單元號(hào)段配置單元,用于定義所述號(hào)段條目屬性,生成號(hào)段條目列表;號(hào)段分配單元,用于根據(jù)所述號(hào)段條目列表,對(duì)所述各個(gè)子公司的信息管理系統(tǒng)進(jìn)行號(hào)段分配,生成號(hào)段分配列表。本發(fā)明采用的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,與傳統(tǒng)的“⑶ID生成法”和“層次碼生成法”相比較,擴(kuò)展方便,性能更高。與層次碼生成方法比較,本發(fā)明方法更易于擴(kuò)展。企業(yè)集團(tuán)信息管理系統(tǒng)有眾多的關(guān)系數(shù)據(jù)表,每一個(gè)表基本上都有唯一關(guān)鍵字段,因企業(yè)集團(tuán)管理需要這些唯一關(guān)鍵字段的取值不僅僅是數(shù)據(jù)表內(nèi)部唯一,也要求在企業(yè)集團(tuán)間保證唯一,例如企業(yè)集團(tuán)信息管理系統(tǒng)中有200張數(shù)據(jù)表的關(guān)鍵字段值需要全局唯一,共有100家子公司,則需要20000(200X100)個(gè)層次碼,隨著信息系統(tǒng)功能不斷擴(kuò)展和企業(yè)經(jīng)營(yíng)規(guī)模不斷擴(kuò)大,所需要的層次碼數(shù)量會(huì)以幾何倍數(shù)遞增,例如當(dāng)信息系統(tǒng)中的數(shù)據(jù)表增加到400張,子公司數(shù)量增加到200家時(shí),則需要碼次碼數(shù)量將達(dá)80000(400X200)個(gè),一旦達(dá)到層次碼所設(shè)計(jì)容量限制,整個(gè)信息管理系統(tǒng)將無法再進(jìn)行擴(kuò)展;本發(fā)明所采用的方法,是按“數(shù)據(jù)表名稱”和“關(guān)鍵字段名稱”為基本單位建立號(hào)段條目,號(hào)段條目數(shù)量是隨著信息管理系統(tǒng)中的數(shù)據(jù)表數(shù)量而線性增加,例如有200張數(shù)據(jù)表,則對(duì)應(yīng)200個(gè)號(hào)段條目,當(dāng)數(shù)據(jù)表增加到400張時(shí),對(duì)應(yīng)的號(hào)段條目也僅增加到400個(gè),在實(shí)際使用過程中不會(huì)達(dá)到號(hào)段條目上限值。因此層次碼生成方法由于受擴(kuò)展性限制不適用于企業(yè)集團(tuán)信息系統(tǒng)的全局號(hào)段生成。⑶ID生成方法一般是根據(jù)網(wǎng)卡地址、系統(tǒng)時(shí)鐘等信息生成32個(gè)字符長(zhǎng)度的全球唯一字符串,此方法實(shí)現(xiàn)比較簡(jiǎn)單,無需預(yù)分配號(hào)段,具有使用便捷、快速生成的特點(diǎn)。在關(guān)系數(shù)據(jù)庫中普便使用32個(gè)字符作為數(shù)據(jù)表的關(guān)鍵字段時(shí),其負(fù)面影響是在數(shù)據(jù)查詢以及多表關(guān)聯(lián)時(shí)性能較差;根據(jù)常規(guī)并發(fā)測(cè)試結(jié)果,以整型字段(即NUBER(IO))作為數(shù)據(jù)表關(guān)鍵字的多表關(guān)聯(lián)查詢速度作為基準(zhǔn),在單表數(shù)據(jù)量都在百萬條記錄以上時(shí),以32個(gè)字符作為數(shù)據(jù)表的關(guān)鍵字段的多表關(guān)聯(lián)的查詢速度比基礎(chǔ)查詢速度慢5-10倍。因此從關(guān)系數(shù)據(jù)庫查詢性能方面考慮,GUID生成方法生成的字符串不適合作為關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表關(guān)鍵字段值。本發(fā)明所采用的方法生成的號(hào)碼是一個(gè)整型數(shù)值,生成的號(hào)碼在保證企業(yè)集團(tuán)內(nèi)部全局唯一的同時(shí),也擁有良好的程序易擴(kuò)展和較高的數(shù)據(jù)庫查詢速度的特性,非常適合關(guān)系型數(shù)據(jù)庫存儲(chǔ),也非常適合作為數(shù)據(jù)表關(guān)鍵字段值。圖1為本發(fā)明的全局唯一數(shù)據(jù)標(biāo)志符的生成方法流程圖。圖2為號(hào)段條目列表示意圖。圖3為號(hào)段分配列表示意圖。圖4為當(dāng)前子公司所屬號(hào)段分配列表示例圖。圖5為本發(fā)明的全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng)結(jié)構(gòu)框圖。具體實(shí)施例方式以下將結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)說明。參考圖1,本發(fā)明所涉及的一種全局唯一數(shù)據(jù)標(biāo)志符的生成方法,共由兩大執(zhí)行動(dòng)作號(hào)段生成動(dòng)作、號(hào)碼生成動(dòng)作。號(hào)段生成動(dòng)作在集團(tuán)總部信息系統(tǒng)中執(zhí)行,職責(zé)是根據(jù)預(yù)定義的號(hào)段類型生成號(hào)段區(qū)間并分配給各個(gè)子公司,它充當(dāng)著企業(yè)集團(tuán)的總調(diào)度中心,把有限的號(hào)碼資源根據(jù)實(shí)際需要逐一分配給子公司;號(hào)碼生成動(dòng)作在各子公司信息系統(tǒng)中執(zhí)行,根據(jù)集團(tuán)總部分配給子公司的號(hào)段區(qū)間生成未使用的號(hào)碼。企業(yè)總部把號(hào)段生成動(dòng)作形成的數(shù)據(jù)包下發(fā)給各子公司,數(shù)據(jù)下發(fā)功能通過遠(yuǎn)程調(diào)用或郵件等技術(shù)手段完成,“數(shù)據(jù)下發(fā)”不屬于本發(fā)明。關(guān)于號(hào)段生成動(dòng)作,號(hào)段生成動(dòng)作包括兩個(gè)子動(dòng)作號(hào)段配置和號(hào)段分配。其中,號(hào)段配置動(dòng)作是由部署在總部的信息管理系統(tǒng)執(zhí)行,用來初始化號(hào)段條目,號(hào)段條目屬性包括表名稱對(duì)應(yīng)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表名稱;字段名稱對(duì)應(yīng)關(guān)系數(shù)據(jù)表的字段名稱號(hào)段最小值號(hào)段區(qū)間的起始值,號(hào)段分配置時(shí)使用;號(hào)段最大值號(hào)段區(qū)間的最大值,號(hào)段分配置時(shí)使用;號(hào)段步長(zhǎng)號(hào)段分配區(qū)間長(zhǎng)度,即號(hào)段分配時(shí)分配區(qū)間大小。號(hào)段配置動(dòng)作是在集團(tuán)總部手工執(zhí)行,號(hào)段條目?jī)?nèi)容均是手工輸入;當(dāng)因企業(yè)集團(tuán)管理系統(tǒng)因功能擴(kuò)展,對(duì)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)表關(guān)鍵字段值設(shè)置為集團(tuán)全局唯一時(shí),則需要在集團(tuán)總部中手工增加一條號(hào)段條目屬性,其中“表名稱”對(duì)應(yīng)關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)表名稱,“字段名稱”對(duì)應(yīng)數(shù)據(jù)表關(guān)鍵字段名稱。號(hào)段條目限制規(guī)則如下A.“表名稱+字段名稱”在號(hào)段條目列表中不能重復(fù)B.號(hào)段最大值必須大于號(hào)段最小值C.號(hào)段步長(zhǎng)必須小于號(hào)段最大值-號(hào)段最小值如果手工輸入的內(nèi)容違反上述限制規(guī)則時(shí),則給出提示信息并拒絕保存。例如,在企業(yè)信息系統(tǒng)中要求企業(yè)職工的“職工工號(hào)”必需企業(yè)集團(tuán)全局唯一,在關(guān)系數(shù)據(jù)庫中企業(yè)職工表名稱是“T_Employee”,職工工號(hào)字段名稱是“EmployeelD”,那么手工增加的號(hào)段條目?jī)?nèi)容如附圖2。其中,號(hào)段分配動(dòng)作由部署在總部的信息管理系統(tǒng)執(zhí)行,根據(jù)號(hào)段配置的號(hào)段條目,對(duì)指定的子公司進(jìn)行號(hào)段分配,生成“號(hào)段分配列表”,其屬性如下子公司代號(hào)子公司的信息系統(tǒng)代號(hào)表名稱對(duì)應(yīng)號(hào)段條目的表名稱字段名稱對(duì)應(yīng)號(hào)段條目的字段名稱已分配最小值本次分配指定子公司的號(hào)段的最小值已分配最大值本次分配指定子公司的號(hào)段的最大值分配方法如下A.手工輸入子公司代號(hào)B.選擇“號(hào)段條目列表”中已存在的表名稱和字段名稱;C.過濾已分配列表中“表名稱”=“當(dāng)前選擇的表名稱”并且“字段名稱”=“當(dāng)前選擇的字段名稱”,如果存在記錄,則計(jì)算得到這些記錄中“已分配最大值”屬性的最大值,將當(dāng)前最大值+1后保存到變量maxl;如果沒有對(duì)應(yīng)記錄,則從所選擇的“號(hào)段條目”中取出號(hào)段最小值保存到變量maxl;D.把maxl變量值作為“已分配最小值”E.把maxl+當(dāng)前選擇的“號(hào)段條目號(hào)段步長(zhǎng)”計(jì)算結(jié)果作為“已分配最大值”例如,以附圖2示例,當(dāng)對(duì)子公司“0001”分配2個(gè)號(hào)段時(shí),號(hào)段分配列表如附圖3。關(guān)于號(hào)碼生成動(dòng)作,號(hào)碼生成動(dòng)作共分3個(gè)子動(dòng)作計(jì)算未使用號(hào)碼最大值,號(hào)碼回收和號(hào)段預(yù)警。這3個(gè)子動(dòng)作在子公司信息管理系統(tǒng)中執(zhí)行。其中,計(jì)算未使用號(hào)碼最大值包括建立當(dāng)前子公司所屬號(hào)段分配列表和計(jì)算未使用號(hào)碼最大值以生成新號(hào)碼在企業(yè)集團(tuán)信息系統(tǒng)中增加實(shí)體數(shù)據(jù)(如增加企業(yè)職工信息)時(shí),執(zhí)行本子動(dòng)作生成一個(gè)新號(hào)碼。在本子動(dòng)作中生成和使用“當(dāng)前子公司所屬號(hào)段分配列表“,共有以下屬性表名稱對(duì)應(yīng)“號(hào)段分配列表”的“表名稱”;字段名稱對(duì)應(yīng)“號(hào)段分配列表”的“字段名稱”;已分配最小值對(duì)應(yīng)“號(hào)段分配列表”的“已分配最小值”;已分配最大值對(duì)應(yīng)“號(hào)段分配列表”的“已分配最大值”;當(dāng)前使用狀態(tài)號(hào)段使用狀態(tài),分為3種狀態(tài)未使用/正在使用/使用完畢當(dāng)前已使用號(hào)碼當(dāng)前號(hào)段中已使用的最大號(hào)碼列表類型分為2種類型,集團(tuán)總部分配類型/號(hào)碼回收類型計(jì)算未使用號(hào)碼最大值以生成新號(hào)碼方法如下A.獲取調(diào)用者傳遞的子公司單位代號(hào)、表名稱、字段名稱,分別保存到變量compCode,tabIeName,fieldName;B.查找“當(dāng)前子公司所屬號(hào)段分配列表”中表名稱=tableName并且字段名稱=fieldname并且“當(dāng)前使用狀態(tài)”=“正在使用”,如果存在符合的記錄,執(zhí)行Bl分支;如果不存在符合條件的記錄,執(zhí)行B2分支。Bi.取出“當(dāng)前已使用號(hào)碼”+1作為新號(hào)碼,保存到變量newCode;如果newCode小于當(dāng)前記錄的“已分配最大值”,則把newCode值保存到“當(dāng)前已使用號(hào)碼”,并將newCode作為返回值返回;如果newCode=當(dāng)前記錄的“已分配最大值”,則把newCode值保存到“當(dāng)前已使用號(hào)碼”,修改當(dāng)前記錄的“當(dāng)前使用狀態(tài)”為“使用完畢”,并將newCode作為返回值返回;如果newCode>當(dāng)前記錄的“已分配最大值”,則修改當(dāng)前記錄的“當(dāng)前使用狀態(tài)”為“使用完畢”,繼續(xù)向下執(zhí)行。B2.重新查找“當(dāng)前子公司所屬號(hào)段分配列表”中表名稱=tableName并且字段名稱=fieldname并且“當(dāng)前使用狀態(tài)”=“未使用”,如果存在符合條件的記錄,遍歷定位到“已分配最小值”數(shù)值最小的列表記錄,更新當(dāng)前記錄的“當(dāng)前已使用號(hào)碼”=“已分配最小值”-1,“當(dāng)前使用狀態(tài)”=“正在使用”,程序再重新Bl中的方法(注如果不滿足Bl的返回條件,則繼續(xù)向下執(zhí)行);如果不存在符合條件的記錄,則繼續(xù)向下執(zhí)行。C.從集團(tuán)總部下發(fā)的“號(hào)段分配列表”中查找子公司代號(hào)=compCode并且表名稱=tableName并且字段名稱=fieldName的所有記錄,如果不存在記錄,則拋出“未分配號(hào)碼”的異常信息,終止本次運(yùn)行;如果存在記錄并且此記錄并沒有在“當(dāng)前子公司所屬號(hào)段分配列表”中時(shí),把此記錄增加到“當(dāng)前子公司所屬號(hào)段分配列表”中,增加“當(dāng)前子公司所屬號(hào)段分配列表”的“當(dāng)前使用狀態(tài)”=“未使用”,“列表類型”=“集團(tuán)總部分配類型”,其他屬性則對(duì)應(yīng)“號(hào)段分配列表”的同名屬性,重新執(zhí)行B步驟中的方法,如果仍然不滿足返回條件,則繼續(xù)向下執(zhí)行。D.拋出“未分配號(hào)碼”的異常信息,終止本次運(yùn)行例如,以附圖3所分配的號(hào)段為例,如果子公司“0001”增加一個(gè)企業(yè)職工后,則生成如附圖4所示的“當(dāng)前子公司所屬號(hào)段分配列表”。關(guān)于號(hào)碼回收在企業(yè)集團(tuán)信息系統(tǒng)運(yùn)行過程中,存在增加數(shù)據(jù)實(shí)體后因其他原因被刪除,因此形成空閑號(hào)碼。由于在企業(yè)集團(tuán)信息系統(tǒng)中號(hào)段是一種稀缺資源,因此需要回收空閑號(hào)碼加以再利用。號(hào)碼回收動(dòng)作是在服務(wù)后臺(tái)定時(shí)運(yùn)行,方法如下A.刪除“當(dāng)前子公司所屬號(hào)段分配列表”中“列表類型”=“號(hào)碼回收類型”并且“當(dāng)前使用狀態(tài)”=“使用完畢”的記錄。B.從“當(dāng)前子公司所屬號(hào)段分配列表”查找出“當(dāng)前使用狀態(tài)”=“使用完畢”列表記錄的“表名稱”和“字段名稱”,如果不存在符合條件的記錄,則終止本次號(hào)碼回收動(dòng)作。C.遍歷上述符合條件的列表查詢“已分配最小值”和“已分配最大值“之間的整型值是否在對(duì)應(yīng)的關(guān)系數(shù)據(jù)表的關(guān)鍵字段中的記錄,如果不存在,則在“當(dāng)前子公司所屬號(hào)段分配列表”增加一條“回收號(hào)碼”,其中列表記錄的“已分配最小值”=“已分配最大值”=當(dāng)前需要回收的號(hào)碼,“當(dāng)前使用狀態(tài)”=“未使用”,“列表類型”=“號(hào)碼回收類型”。關(guān)于號(hào)段預(yù)警,號(hào)段預(yù)警動(dòng)作是在服務(wù)后臺(tái)定時(shí)運(yùn)行,方法如下如果未使用號(hào)段與當(dāng)前總號(hào)段的比例小于特定閥值時(shí)(如10%),并嘗試連接集團(tuán)總部服務(wù)申請(qǐng)分配新號(hào)段,如申請(qǐng)失敗則通過郵件、短信等方式發(fā)出預(yù)警通知(注郵件、短信發(fā)送通過第三方服務(wù)完成,不屬于本發(fā)明發(fā)明的同容)。參考圖5,示出了本發(fā)明的全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng)結(jié)構(gòu)框圖,可以包括以下單元號(hào)段生成單元101,位于企業(yè)總部的信息管理系統(tǒng)中,用于根據(jù)預(yù)定義的號(hào)段條目屬性生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成單元201,位于所述各個(gè)子公司的信息管理系統(tǒng)中,用于根據(jù)分配給所述各個(gè)子公司的信息管理系統(tǒng)的所述號(hào)段區(qū)間生成未使用的號(hào)碼。所述號(hào)段生成單元101還包括以下子單元號(hào)段配置單元1011,用于定義所述號(hào)段條目屬性,生成號(hào)段條目列表;號(hào)段分配單元1012,用于根據(jù)所述號(hào)段條目列表,對(duì)所述各個(gè)子公司的信息管理系統(tǒng)進(jìn)行號(hào)段分配,生成號(hào)段分配列表。所示號(hào)碼生成單元201還包括計(jì)算未使用號(hào)碼最大值單元2011,通過建立當(dāng)前子公司所屬號(hào)段列表,計(jì)算未使用號(hào)碼最大值,生成新號(hào)碼。所示號(hào)碼生成單元201還包括號(hào)碼回收單元2012,定時(shí)對(duì)空閑號(hào)碼進(jìn)行回收。所示號(hào)碼生成單元201還包括號(hào)段預(yù)警單元2013,定時(shí)計(jì)算當(dāng)前子公司所屬號(hào)段分配列表中未使用號(hào)段與當(dāng)前總號(hào)段的比例,如果小于預(yù)定閥值,則向所述企業(yè)總部的信息管理系統(tǒng)發(fā)出號(hào)段預(yù)警通知。需要說明的是,對(duì)于系統(tǒng)類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上對(duì)本發(fā)明的優(yōu)選實(shí)施方案進(jìn)行了詳細(xì)描述,但本發(fā)明并不局限于上述實(shí)施方案,對(duì)本領(lǐng)域技術(shù)人員來說各種顯而易見的修改和變換,仍屬于本發(fā)明所要求保護(hù)的范圍。權(quán)利要求1.一種全局唯一數(shù)據(jù)標(biāo)志符的生成方法,包括以下步驟號(hào)段生成步驟,在企業(yè)總部的信息管理系統(tǒng)中執(zhí)行,用于根據(jù)預(yù)定義的號(hào)段條目屬性生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成步驟,在所述各個(gè)子公司的信息管理系統(tǒng)中執(zhí)行,用于根據(jù)分配給所述各個(gè)子公司的信息管理系統(tǒng)的所述號(hào)段區(qū)間生成未使用的號(hào)碼。2.根據(jù)權(quán)利要求1所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,其特征在于,所述號(hào)段生成步驟還包括以下步驟號(hào)段配置步驟,用于定義所述號(hào)段條目屬性,生成號(hào)段條目列表;號(hào)段分配步驟,用于根據(jù)所述號(hào)段條目列表,對(duì)所述各個(gè)子公司的信息管理系統(tǒng)進(jìn)行號(hào)段分配,生成號(hào)段分配列表。3.根據(jù)權(quán)利要求2所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,其特征在于,所述號(hào)段條目屬性包括表名稱,對(duì)應(yīng)關(guān)系數(shù)據(jù)庫的數(shù)據(jù)表名稱;字段名稱對(duì)應(yīng)關(guān)系數(shù)據(jù)表的字段名稱;號(hào)段最小值所述號(hào)段區(qū)間的起始值;號(hào)段最大值所述號(hào)段區(qū)間的最大值;號(hào)段步長(zhǎng)所述號(hào)段分配的區(qū)間長(zhǎng)度;其中,所述表名稱和所述字段名稱在所述號(hào)段條目列表中不能重復(fù),所述號(hào)段最大值必須大于所述號(hào)段最小值,所述號(hào)段步長(zhǎng)必須小于號(hào)段最大值減去號(hào)段最小值。4.根據(jù)權(quán)利要求3所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,其特征在于,所述號(hào)段分配步驟還包括以下步驟步驟1輸入子公司代號(hào),所述子公司代號(hào)為所述子公司的信息管理系統(tǒng)代號(hào);步驟2選擇所述號(hào)段條目列表中的所述表名稱和所述字段名稱;步驟3過濾所選擇的所述號(hào)段條目列表中“表名稱”=“當(dāng)前選擇的表名稱”并且“字段名稱”=“當(dāng)前選擇的字段名稱”,如果存在記錄,則計(jì)算得到所述記錄中符合已分配最大值的屬性的最大值,將所述最大值加1后保存到變量maxl,所述已分配最大值為本次分配給所述子公司的號(hào)段的最大值;如果沒有對(duì)應(yīng)記錄,則從所選擇的所述號(hào)段條目列表中取出號(hào)段最小值保存到變量maxl;步驟4JEmaxl作為已分配最小值,所述已分配最小值為本次分配給所述子公司的號(hào)段的最小值;步驟5把maxl加上當(dāng)前選擇的所述號(hào)段條目的所述號(hào)段步長(zhǎng)的計(jì)算結(jié)果作為所述已分配最大值;將所述子公司代號(hào)、表名稱、字段名稱、已分配最小值和已分配最大值作為所述號(hào)段分配列表的屬性。5.根據(jù)權(quán)利要求4所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,其特征在于,在所述號(hào)碼生成步驟中生成當(dāng)前子公司所屬號(hào)段分配列表,所述列表包括從所述號(hào)段分配列表中選擇的當(dāng)前子公司的所述表名稱、字段名稱、已分配最小值、已分配最大值、獲取的所選擇號(hào)段的當(dāng)前使用狀態(tài)、當(dāng)前已使用號(hào)碼,其中,所述當(dāng)前已使用號(hào)碼為當(dāng)前號(hào)段中已使用的最大號(hào)碼;通過查找所述號(hào)段分配列表中與生成號(hào)碼對(duì)應(yīng)的所述子公司代號(hào)、表名稱和字段名稱所在的號(hào)段,步驟A.如果存在記錄,則根據(jù)所選擇號(hào)段的當(dāng)前使用狀態(tài)和所述已分配最大值,生成新號(hào)碼,并保存到所述當(dāng)前已使用號(hào)碼;步驟B.如果存在記錄,但此記錄沒有在所述當(dāng)前子公司所屬號(hào)段分配列表中,則在所述列表中增加記錄,并重新執(zhí)行A步驟;步驟C.如果不存在記錄,則發(fā)出“未分配號(hào)段”的信息。6.根據(jù)權(quán)利要求5所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,其特征在于,所述步驟A包括步驟Al.如果存在當(dāng)前使用狀態(tài)為正在使用的記錄,則將所述當(dāng)前已使用號(hào)碼加1作為新號(hào)碼;步驟A2.如果不存在當(dāng)前使用狀態(tài)為正在使用的記錄,則查找當(dāng)前使用狀態(tài)為未使用的記錄,將已分配最小值作為新號(hào)碼。7.根據(jù)權(quán)利要求1所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,所述號(hào)碼生成步驟還包括定時(shí)對(duì)空閑號(hào)碼進(jìn)行回收。8.根據(jù)權(quán)利要求5所述的全局唯一數(shù)據(jù)標(biāo)志符的生成方法,所述號(hào)碼生成步驟還包括定時(shí)計(jì)算當(dāng)前子公司所屬號(hào)段分配列表中未使用號(hào)段與當(dāng)前總號(hào)段的比例,如果小于預(yù)定閥值,則向所述企業(yè)總部的信息管理系統(tǒng)發(fā)出號(hào)段預(yù)警通知。9.一種全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng),包括以下單元號(hào)段生成單元,位于企業(yè)總部的信息管理系統(tǒng)中,用于根據(jù)預(yù)定義的號(hào)段條目屬性生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成單元,位于所述各個(gè)子公司的信息管理系統(tǒng)中,用于根據(jù)分配給所述各個(gè)子公司的信息管理系統(tǒng)的所述號(hào)段區(qū)間生成未使用的號(hào)碼。10.根據(jù)權(quán)利要求9所述的全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng),其特征在于,所述號(hào)段生成單元還包括以下子單元號(hào)段配置單元,用于定義所述號(hào)段條目屬性,生成號(hào)段條目列表;號(hào)段分配單元,用于根據(jù)所述號(hào)段條目列表,對(duì)所述各個(gè)子公司的信息管理系統(tǒng)進(jìn)行號(hào)段分配,生成號(hào)段分配列表。全文摘要本發(fā)明涉及一種全局唯一數(shù)據(jù)標(biāo)志符的生成方法,包括號(hào)段生成動(dòng)作和號(hào)碼生成動(dòng)作。號(hào)段生成動(dòng)作在企業(yè)總部的信息管理系統(tǒng)中執(zhí)行,根據(jù)預(yù)定義的號(hào)段類型生成號(hào)段區(qū)間并分配給各個(gè)子公司的信息管理系統(tǒng);號(hào)碼生成動(dòng)作在各子公司的信息管理系統(tǒng)中執(zhí)行,根據(jù)企業(yè)總部的信息管理系統(tǒng)分配給子公司的號(hào)段區(qū)間生成未使用的號(hào)碼。同時(shí)還涉及一種全局唯一數(shù)據(jù)標(biāo)志符的生成系統(tǒng)。本發(fā)明生成的號(hào)碼在保證企業(yè)集團(tuán)內(nèi)部全局唯一的同時(shí),也擁有良好的程序易擴(kuò)展和較高的數(shù)據(jù)庫查詢速度的特性。文檔編號(hào)G06Q10/06GK102436479SQ20111030909公開日2012年5月2日申請(qǐng)日期2011年10月12日優(yōu)先權(quán)日2011年10月12日發(fā)明者周浩源,孫濤,畢偉,陳利浩申請(qǐng)人:遠(yuǎn)光軟件股份有限公司