CN104573088A - 一种单据编号生成方法和装置 - Google Patents
一种单据编号生成方法和装置 Download PDFInfo
- Publication number
- CN104573088A CN104573088A CN201510046048.0A CN201510046048A CN104573088A CN 104573088 A CN104573088 A CN 104573088A CN 201510046048 A CN201510046048 A CN 201510046048A CN 104573088 A CN104573088 A CN 104573088A
- Authority
- CN
- China
- Prior art keywords
- document
- database
- numbering
- computing
- numeral
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种单据编号生成方法和装置,能够生成数字形式的单据编号,全局唯一且有序,有助于确定单据的先后顺序,并且便于数据库索引以及提高检索性能。发明的单据编号生成方法包括:为多个单据中的各个单据分配数据库自增标识;对于所述多个单据中的各个单据,根据该单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种单据编号生成方法和装置。
背景技术
目前,现有的单据编号的生成方法有如下几种:第一种是结合时间戳和随机数的模式;第二种是结合字母前缀和自增标识的模式。
第一种结合时间戳和随机数模式的具体过程为:首先,获取系统生成的时间戳;其次,获取系统生成的随机数(比如6位);最后,把前两步生成的时间戳和随机数串连起来,再转化为long型数字编号,以数字编号作为从而得到相应的单据编号。
第二种结合字母前缀和自增标识模式的具体过程为:首先,使用MYSQL数据库的LAST_INSERT_ID函数生成自增标识,并把该自增标识独立保存在一个数据库的数据表中;其次,获取自增标识,并在自增标识前面补充一定位数的0;最后,在自增标识前加上字母前缀即生成字符串类型的单据编号。
由于第一种模式有随机数的存在,所以生成的单据编号是无序的,因而不利于确定单据的先后顺序。而第二种模式虽然生成的自增标识是有序的,但整体是字符串格式不利于数据库索引和提高检索性能。
发明内容
有鉴于此,本发明提供一种单据编号生成方法和装置,能够生成数字形式的单据编号,全局唯一且有序,有助于确定单据的先后顺序,并且便于数据库索引以及提高检索性能。
为实现上述目的,根据本发明的一个方面,提供了一种单据编号生成方法。
本发明的单据编号生成方法包括:为多个单据中的各个单据分配数据库自增标识;对于所述多个单据中的各个单据,根据该单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。
可选地,所述分库分组标识为字符串;所述按照预设的方法运算得到数字形式的该单据的单据编号的步骤包括:将所述字符串转换为唯一对应于该字符串的数字;根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
可选地,所述分库分组标识为数字;所述按照预设的方法运算得出数字形式的该单据的单据编号的步骤包括:根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
可选地,所述根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号的步骤包括:对所述分库分组标识进行左移运算;将所述左移运算的结果和所述数据库自增标识进行或运算,将该或运算的结果作为该单据的单据编号。
可选地,所述数据库自增标识的最大值为N位1组成的二进制;其中,N为分库分组标识左移的位数。
根据本发明的另一方面,提供了一种单据编号生成装置。
本发明的单据编号生成装置包括:分配模块,用于为多个单据中的各个单据分配数据库自增标识;运算模块,用于根据单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。
可选地,所述运算模块还用于在所述分库分组标识为字符串的情况下,将所述字符串转换为唯一对应于该字符串的数字,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
可选地,所述运算模块还用于在所述分库分组标识为数字的情况下,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
可选地,所述运算模块还用于对所述分库分组标识进行左移运算;将所述左移运算的结果和所述数据库自增标识进行或运算,将该或运算的结果作为该单据的单据编号。
可选地,所述数据库自增标识的最大值为N位1组成的二进制;其中,N为分库分组标识左移的位数。
根据本发明的技术方案,能够生成数字形式的单据编号,全局唯一且有序,有助于确定单据的先后顺序,并且便于数据库索引以及提高检索性能。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的单据编号生成方法的示意图;
图2是根据本发明实施例的单据编号生成装置的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的单据编号生成方法的示意图。如图1所示,该方法主要包括如下的步骤S10至S11。
步骤S10:为多个单据中的各个单据分配数据库自增标识。当客户端需要为多个单据生成单据编号时,系统为多个单据中的各个单据分配数据库自增标识。本实施例中的数据库自增标识是通过MYSQL数据库的LAST_INSERT_ID函数来生成的,并把该数据库自增标识保存到数据库表中;下次获取数据库自增标识的时候,在原有数据库自增标的基础上加1并把变更后的数据库自增标识更新到数据库中并返回。数据库表保存数据库自增标识的方式包括单个数据库表保存多个单据的数据库自增标识;或单个数据库表保存一个单据的数据库自增标识。本发明实施例中使用的是单个数据库表保存多个单据的数据库自增标识的方式。
步骤S11:对于所述多个单据中的各个单据,根据该单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。其中,分库分组标识可以为字符串或者数字。本实施例中单据的分库分组标识为贯穿系统的业务实体的标识,例如用户标识,通过对用户标识进行取模加1的运算,从而得到数字形式的分库分组标识。
当分库分组标识为字符串时,系统将该字符串转换为唯一对应于该字符串的数字,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号;当分库分组标识为数字时,系统根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。字符串可以通过ASCII码或者其他能够将字符串一一映射为数字的方法转换为对应于该字符串的数字。
上述根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号的过程可以是:首先对分库分组标识进行左移运算,然后把左移运算的结果和数据库自增标识进行或运算,最终计算的结果就是该单据的单据编号。
为了避免分库分组标识左移运算后跟数据库自增标识的二进制位重叠,系统设定数据库自增标识的最大值为N位1组成的二进制;其中,N为分库分组标识左移的位数。例如,分库分组标识左移的位数为42位,那么数据库自增标识的最大值小于或等于4398046511103(对应的二进制为:1111……1111,共42位1)。
图2是根据本发明实施例的单据编号生成装置的示意图。如图2所示,本发明实施例的单据编号生成装置20主要包括分配模块21和运算模块22。分配模块21用于为多个单据中的各个单据分配数据库自增标识;运算模块22用于根据单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号;还可用于在分库分组标识为字符串的情况下,将所述字符串转换为唯一对应于该字符串的数字,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号;还可用于在分库分组标识为数字的情况下,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号;还可用于对分库分组标识进行左移运算;将所述左移运算的结果和所述数据库自增标识进行或运算,将该或运算的结果作为该单据的单据编号。
根据本发明实施例的技术方案,能够生成数字形式的单据编号,全局唯一且有序,有助于确定单据的先后顺序,并且便于数据库索引以及提高检索性能。
以上结合具体实施例描述了本发明的基本原理,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种单据编号生成方法,其特征在于,包括:
为多个单据中的各个单据分配数据库自增标识;
对于所述多个单据中的各个单据,根据该单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。
2.根据权利要求1所述的方法,其特征在于,
所述分库分组标识为字符串;
所述按照预设的方法运算得到数字形式的该单据的单据编号的步骤包括:将所述字符串转换为唯一对应于该字符串的数字;根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
3.根据权利要求1所述的方法,其特征在于,
所述分库分组标识为数字;
所述按照预设的方法运算得出数字形式的该单据的单据编号的步骤包括:根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
4.根据权利要求2或3所述的方法,其特征在于,所述根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号的步骤包括:
对所述分库分组标识进行左移运算;
将所述左移运算的结果和所述数据库自增标识进行或运算,将该或运算的结果作为该单据的单据编号。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述数据库自增标识的最大值为N位1组成的二进制;其中,N为分库分组标识左移的位数。
6.一种单据编号生成装置,其特征在于,包括:
分配模块,用于为多个单据中的各个单据分配数据库自增标识;
运算模块,用于根据单据的分库分组标识和数据库自增标识,按照预设的方法运算得出数字形式的该单据的单据编号。
7.根据权利要求6所述的装置,其特征在于,所述运算模块还用于在所述分库分组标识为字符串的情况下,将所述字符串转换为唯一对应于该字符串的数字,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
8.根据权利要求6所述的装置,其特征在于,所述运算模块还用于在所述分库分组标识为数字的情况下,根据预设的数字运算方法对所述数字和所述数据库自增标识进行计算得出该单据的单据编号。
9.根据权利要求7或8所述的装置,其特征在于,所述运算模块还用于对所述分库分组标识进行左移运算;将所述左移运算的结果和所述数据库自增标识进行或运算,将该或运算的结果作为该单据的单据编号。
10.根据权利要求6至8中任一项所述的装置,其特征在于,所述数据库自增标识的最大值为N位1组成的二进制;其中,N为分库分组标识左移的位数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510046048.0A CN104573088A (zh) | 2015-01-29 | 2015-01-29 | 一种单据编号生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510046048.0A CN104573088A (zh) | 2015-01-29 | 2015-01-29 | 一种单据编号生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104573088A true CN104573088A (zh) | 2015-04-29 |
Family
ID=53089150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510046048.0A Pending CN104573088A (zh) | 2015-01-29 | 2015-01-29 | 一种单据编号生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104573088A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447152A (zh) * | 2015-11-30 | 2016-03-30 | 明博教育科技股份有限公司 | 一种基础教育电子课本编码的方法 |
CN106776932A (zh) * | 2016-12-01 | 2017-05-31 | 湖北荆楚网络科技股份有限公司 | 一种在分布式系统内生成唯一id的方法 |
CN107729479A (zh) * | 2017-10-16 | 2018-02-23 | 山东浪潮通软信息科技有限公司 | 一种生成单据的编号的方法及装置 |
CN110889648A (zh) * | 2019-12-09 | 2020-03-17 | 金蝶软件(中国)有限公司 | 单据编号方法、服务器以及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650807A (zh) * | 2009-09-11 | 2010-02-17 | 金蝶软件(中国)有限公司 | 业务编码处理方法、编码模块及系统 |
CN101673376A (zh) * | 2009-10-15 | 2010-03-17 | 金蝶软件(中国)有限公司 | 一种获取业务单据编码的方法及装置 |
CN101719244A (zh) * | 2009-12-29 | 2010-06-02 | 金蝶软件(中国)有限公司 | 处理库存单据的方法、应用服务器和企业网络系统 |
CN103019665A (zh) * | 2011-09-27 | 2013-04-03 | 深圳市金蝶友商电子商务服务有限公司 | 一种单据打开方法及装置 |
CN103218718A (zh) * | 2011-11-18 | 2013-07-24 | 苏州中茵泰格科技有限公司 | 基于多平台的订单编号生成方法及系统 |
CN103310291A (zh) * | 2012-03-14 | 2013-09-18 | 金蝶软件(中国)有限公司 | 基于条码扫描的单据流的实现方法及装置 |
US20140074660A1 (en) * | 2003-03-07 | 2014-03-13 | Trans World Entertainment Corporation | Systems and methods for the selection and purchase of digital assets |
-
2015
- 2015-01-29 CN CN201510046048.0A patent/CN104573088A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140074660A1 (en) * | 2003-03-07 | 2014-03-13 | Trans World Entertainment Corporation | Systems and methods for the selection and purchase of digital assets |
CN101650807A (zh) * | 2009-09-11 | 2010-02-17 | 金蝶软件(中国)有限公司 | 业务编码处理方法、编码模块及系统 |
CN101673376A (zh) * | 2009-10-15 | 2010-03-17 | 金蝶软件(中国)有限公司 | 一种获取业务单据编码的方法及装置 |
CN101719244A (zh) * | 2009-12-29 | 2010-06-02 | 金蝶软件(中国)有限公司 | 处理库存单据的方法、应用服务器和企业网络系统 |
CN103019665A (zh) * | 2011-09-27 | 2013-04-03 | 深圳市金蝶友商电子商务服务有限公司 | 一种单据打开方法及装置 |
CN103218718A (zh) * | 2011-11-18 | 2013-07-24 | 苏州中茵泰格科技有限公司 | 基于多平台的订单编号生成方法及系统 |
CN103310291A (zh) * | 2012-03-14 | 2013-09-18 | 金蝶软件(中国)有限公司 | 基于条码扫描的单据流的实现方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447152A (zh) * | 2015-11-30 | 2016-03-30 | 明博教育科技股份有限公司 | 一种基础教育电子课本编码的方法 |
CN106776932A (zh) * | 2016-12-01 | 2017-05-31 | 湖北荆楚网络科技股份有限公司 | 一种在分布式系统内生成唯一id的方法 |
CN107729479A (zh) * | 2017-10-16 | 2018-02-23 | 山东浪潮通软信息科技有限公司 | 一种生成单据的编号的方法及装置 |
CN110889648A (zh) * | 2019-12-09 | 2020-03-17 | 金蝶软件(中国)有限公司 | 单据编号方法、服务器以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104573088A (zh) | 一种单据编号生成方法和装置 | |
CN103703467A (zh) | 存储数据的方法和装置 | |
CN104199860B (zh) | 一种基于二维地理位置信息的数据集分片方法 | |
CN103678293B (zh) | 一种数据存储方法及装置 | |
CN104765749A (zh) | 一种数据存储方法及装置 | |
CN103473289A (zh) | 一种通信地址补全的装置及方法 | |
CN105589894B (zh) | 文档索引建立方法和装置、文档检索方法和装置 | |
CN108734110A (zh) | 基于最长公共子序列的文本段落识别对比方法及系统 | |
CN105528345B (zh) | 终端、服务器和补字方法 | |
CN106777258B (zh) | 一种医疗大数据存储中Hbase行键的编码及压缩方法 | |
CN101673289A (zh) | 分布式文件存储构架的构建方法和装置 | |
CN102750337A (zh) | 字库的制作方法和装置 | |
CN106326377A (zh) | 序列化方法、反序列化方法、装置和系统 | |
CN109284763A (zh) | 一种生成分词训练数据的方法和服务器 | |
CN109144690B (zh) | 任务处理方法和装置 | |
CN103838763A (zh) | 目标文件生成系统及方法 | |
CN104102707B (zh) | 一种面向MapReduce框架的地理归属信息查询方法 | |
CN103970721A (zh) | 文字内容显示方法、系统、移动终端及云端排版服务器 | |
CN115470241A (zh) | 一种基于映射字典表的聚合数据更新方法及装置 | |
CN108763381B (zh) | 基于一致性哈希算法的分表方法及设备 | |
CN104753891A (zh) | 一种xml报文解析方法及装置 | |
CN105447141A (zh) | 一种数据处理的方法及节点 | |
CN107132993B (zh) | 一种将数据写入内存的方法及装置 | |
CN104216980A (zh) | 一种文件系统序列化操作的分类方法 | |
CN107729577A (zh) | 一种基于多维哈希表的数据查找方法、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |
|
RJ01 | Rejection of invention patent application after publication |