识别码生成方法和系统技术方案

技术编号:4104429 阅读:342 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种识别码生成方法,包括:步骤S102,根据通用唯一识别码通用算法生成第一长度的第一字符串;步骤S104,去除所述第一字符串中的链接符,将所述第一长度的所述第一字符串变为第二长度的第二字符串;步骤S106,将所述第二长度的所述第二字符串中的字符进行分组、压缩,并将压缩后的字符进行拼接,生成第三长度的第三字符串,其中,所述第三字符串为识别码。本发明专利技术还提出了一种识别码生成系统。根据本发明专利技术的技术方案,可以实现一种识别码生成方法和系统,既能够保证在分布式系统产生的识别码具有唯一性,又能够有效的降低识别码所占的字节数,节约存储空间,保证数据存储的效率,不至于增加太多的网络流量。

【技术实现步骤摘要】

本专利技术涉及识别码处理技术,尤其涉及一种识别码生成方法和系统
技术介绍
在基于关系型数据库技术的软件系统中,通常,每个数据表需要用一个ID来唯一 的标识某行记录,比如ERP系统中每个生产订单都会有一个唯一的标识。目前市场上的软件产品中主要存在两大类产生系统内唯一 ID的方法(1)采用 UUID(Universally Unique Identifier,通用唯一识别码)的方式产生 一个全球唯一的识别码。该方法的优点是已经有公开的算法,很多高级的开发语言本身已 经提供了相应的工具包,能够保证在分布式环境中产生的ID具有唯一性,运行效率也比较 高。缺点是UUID由36个字符组成,长度过大,占用存储空间较多,在大型的数据库系统中 会影响数据存取的效率,对于WEB系统来讲,网络上传递大量的此类ID所产生的流量也较 大,进而影响到网站响应的速度。(2)应用程序根据软件运行环境的特定信息,运用一定的算法,自己产生一个依赖 于特定运行环境的唯一识别码。该方法的优点是产生的ID长度可控,缺点是很难保证产生 的ID在整个系统尤其是分布式系统中唯一性,运行时通常需要考虑一些相关信息,往往运 行效率也较低。因此,需要一种识别码生成方式,既能够保证在分布式系统产生的ID具有唯一 性,又能够有效的降低ID所占的字节数,节约存储空间,保证数据存储的效率,不至于增加 太多的网络流量。
技术实现思路
鉴于以上,本专利技术的技术方案所要解决的技术问题在于,提供一种识别码生成方 法和系统,既能够保证在分布式系统产生的ID具有唯一性,又能够有效的降低ID所占的字 节数,节约存储空间,保证数据存储的效率,不至于增加太多的网络流量。本专利技术提供了一种识别码生成方法,包括步骤S102,根据通用唯一识别码通用 算法生成第一长度的第一字符串;步骤S 104,去除所述第一字符串中的链接符,将所述第 一长度的所述第一字符串变为第二长度的第二字符串;步骤S106,将所述第二长度的所述 第二字符串中的字符进行分组、压缩,并将压缩后的字符进行拼接,生成第三长度的第三字 符串,其中,所述第三字符串为识别码。通过该技术方案,可以生成既有唯一性又节约存储 空间的识别码,保证数据存储的效率。在上述技术方案中,优选地,在所述步骤S102中,所述第一长度为36个字符。在上述技术方案中,优选地,在所述步骤S104中,所述链接符为“_”。 在上述技术方案中,优选地,所述第二长度为32个字符,第三长度为22个字符,所 述步骤S106具体为步骤S1062,将所述32个字符分成11组,其中,第1组为2个字符,其 余10组分别为3个字符;步骤S1064,将第2组至第11组的字符串分别进行压缩,使用压4缩算法将每组由3个字符压缩为2个字符;步骤S1066,将所述第1组的2个字符与所述第 2组至第11组的压缩后的字符进行拼接,生成长度为22个字符的第三字符串。通过该技术 方案,可以减小字符串的长度,节约了存储空间。在上述技术方案中,优选地,所述压缩算法具体为将3位16进制的字符串转化为 2位64进制的字符串,所述步骤S1064具体为使用64个字符来描述64进制数值,其中所 述 64 个字符包括#$0123456789ABCDEFGHIJKLMN0PQRSTUVWXYZabcdefghi jklmnopqrstuvw xyz,所述64个字符按照ASCII码的顺序进行排列;将16进制的三个字符传化成10进制的 数字,转化后的数值范围为0至163 ;根据上述10进制的数字,产生长度为2个字符的64进 制的字符串。本专利技术还提供了一种识别码生成系统,包括第一字符串生成模块,根据通用唯一 识别码通用算法生成第一长度的第一字符串;第二字符串生成模块,去除所述第一字符串 中的链接符,将所述第一长度的所述第一字符串变为第二长度的第二字符串;第三字符串 生成模块,将所述第二长度的所述第二字符串中的字符进行分组、压缩,并将压缩后的字符 进行拼接,生成第三长度的第三字符串,其中,所述第三字符串为识别码。通过该技术方案, 可以生成既有唯一性又节约存储空间的识别码,保证数据存储的效率。在上述技术方案中,优选地,所述第一长度为36个字符,所述链接符为“_”;所述 第二长度为32个字符,第三长度为22个字符。在上述技术方案中,优选地,第三字符串生成模块包括分组模块,将所述32个字 符分成11组,其中,第1组为2个字符,其余10组分别为3个字符;压缩模块,将第2组至 第11组的字符串分别进行压缩,使用压缩算法将每组由3个字符压缩为2个字符;拼接模 块,将所述第1组的2个字符与所述第2组至第11组的压缩后的字符进行拼接,生成长度 为22个字符的第三字符串。通过该技术方案,可以减小字符串的长度,节约了存储空间。在上述技术方案中,优选地,所述压缩算法具体为将3位16进制的字符串转化为 2位64进制的字符串。通过上述技术方案,可以实现一种识别码生成方法和系统,既能够保证在分布式 系统产生的ID具有唯一性,又能够有效的降低ID所占的字节数,节约存储空间,保证数据 存储的效率,不至于增加太多的网络流量。附图说明图1是根据本专利技术的一个实施例的识别码生成方法的流程图;图2是根据本专利技术的又一实施例的识别码生成系统的框图;以及图3是根据本专利技术的又一实施例的识别码生成方法的处理流程图。具体实施例方式为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合附图和具体实 施方式对本专利技术进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可 以采用其他不同于在此描述的其他方式来实施,因此,本专利技术并不限于下面公开的具体实 施例的限制。图1是根据本专利技术的一个实施例的识别码生成方法的流程图。如图1所示,根据 本专利技术的实施例的识别码生成方法包括步骤S102,根据通用唯一识别码通用算法生成第 一长度的第一字符串;步骤S104,去除所述第一字符串中的链接符,将所述第一长度的所 述第一字符串变为第二长度的第二字符串;步骤S106,将所述第二长度的所述第二字符串 中的字符进行分组、压缩,并将压缩后的字符进行拼接,生成第三长度的第三字符串,其中, 所述第三字符串为识别码。通过这样的技术方案,可以生成既有唯一性又节约存储空间的 识别码,保证数据存储的效率。在上述技术方案中,在所述步骤S102中,所述第一长度为36个字符。在上述技术方案中,在所述步骤S104中,所述链接符为“_”。在上述技术方案中,所述第二长度为32个字符,第三长度为22个字符,所述步骤 S106具体为步骤S1062,将所述32个字符分成11组,其中,第1组为2个字符,其余10组 分别为3个字符;步骤S1064,将第2组至第11组的字符串分别进行压缩,使用压缩算法将 每组由3个字符压缩为2个字符;步骤S1066,将所述第1组的2个字符与所述第2组至第 11组的压缩后的字符进行拼接,生成长度为22个字符的第三字符串。这样,就可以减小字 符串的长度,节约了存储空间。在上述技术方案中,所述压缩算法具体为将3位16进制的字符串转化为2位64 进制的字符串,所述步骤S1064具体为使用64个字符来描述64进制数值,其中所述64个 字符包括#$0123456789A本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王云波
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1