System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种数据库主键短ID生成方法、电子设备和介质技术_技高网

一种数据库主键短ID生成方法、电子设备和介质技术

技术编号:40044817 阅读:10 留言:0更新日期:2024-01-16 20:17
本发明专利技术实施例公开了一种数据库主键短ID生成方法、电子设备和介质。其中,方法包括:获取待生成数据库主键的业务ID;根据业务信息在数据库主键ID中的设定位数,对所述业务ID取模;根据取模后的业务ID确定对应的业务分组,并提取所述业务分组下最后生成主键ID的时间和顺序号;根据所述最后生成主键ID的时间和顺序号,以及所述取模后的业务ID,生成所述业务ID在数据库中的主键ID;其中,业务信息在数据库主键ID中的位数根据业务需求确定,生成主键ID的时间和顺序号的位数分别根据业务系统的服务年限和业务并发量确定,以减小位数冗余。本实施例能够生成更短的主键ID,并引入业务信息,适应实际需要。

【技术实现步骤摘要】

本专利技术实施例涉及计算机,尤其涉及一种数据库主键短id生成方法、电子设备和介质。


技术介绍

1、数据库主键id指数据库中每一条数据记录的guid(global unique id,全局唯一标识)。随着分布式服务和微服务的普及,服务端需存储的数据量也越来越大。为每一条数据记录分发主键id,是数据库构建的重要内容。

2、现有技术中生成guid的常见方法是snowflake算法,所生成的guid为18到19位的十进制长整数。将该guid作为存在用户输入检索需求的id(例如订单id、问诊单id等)时,会增加用户的记忆负担,不利于使用。同时,snowflake算法生成的guid是没有业务含义的,当需要根据业务信息在数据库内分类存储时,该guid无法满足这类需求。


技术实现思路

1、本专利技术实施例提供一种数据库主键短id生成方法、电子设备和介质,生成更短的主键id,并引入业务信息,适应实际需要。

2、第一方面,本专利技术实施例提供了一种数据库主键短id生成方法,包括:

3、获取待生成数据库主键的业务id;

4、根据业务信息在数据库主键id中的设定位数,对所述业务id取模;

5、根据取模后的业务id确定对应的业务分组,并提取所述业务分组下最后生成主键id的时间和顺序号;

6、根据所述最后生成主键id的时间和顺序号,以及所述取模后的业务id,生成所述业务id在数据库中的主键id;

7、其中,业务信息在数据库主键id中的位数根据业务需求确定,生成主键id的时间和顺序号的位数分别根据业务系统的服务年限和业务并发量确定,以减小位数冗余。

8、第二方面,本专利技术实施例还提供了一种电子设备,所述电子设备包括:

9、一个或多个处理器;

10、存储器,用于存储一个或多个程序,

11、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的数据库主键短id生成方法。

12、第三方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的数据库主键短id生成方法。

13、本专利技术实施例针对业务场景中对短id和分类存储数据的应用需求,结合业务特点构建了更短的二进制序列,与业务id融合生成数据库主键id。对于二进制序列,本实施例根据业务系统的服务年限和单位时间内的并发量,为时间部分和序列号部分确定合理的位数,既能区分需要生成短id的不同业务,又避免位数过长影响使用。对于业务信息,本实施例根据业务需求确定业务信息在主键id中的位数,根据该位数对业务id取模作为主键id的一部分,既能在主键id中保留直观的业务信息,又能通过取模后的业务id对主键id中的其他部分进行分组隔离,进一步拓宽了主键id各部分的组合维度,扩大了可用id的数量。通过以上方式生成的数据库主键id具有全局唯一性,不但能够保证足够的id数量满足业务需要,还缩短了主键id的长度,方便用户记忆和使用,同时包含直观的业务信息,方便根据业务进行分库分表等系统扩容需求。

本文档来自技高网...

【技术保护点】

1.一种数据库主键短ID生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,所述根据业务信息在数据库主键ID中的设定位数,对所述业务ID取模,包括:

4.根据权利要求1所述的方法,其特征在于,所述根据所述最后生成主键ID的时间和顺序号,以及所述取模后的业务ID,生成所述业务ID在数据库中的主键ID,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据当前时间t1、加1后的顺序号n1+1和所述取模后的业务ID,生成所述业务ID在数据库中的主键ID,包括:

6.根据权利要求5所述的方法,其特征在于,所述将当前时间t1和加1后的顺序号n1+1,按照二进制序列依次拼接,包括:

7.根据权利要求1所述的方法,其特征在于,存在多个业务系统提供业务ID,各业务ID的来源业务系统通过机器识别码来区分;

8.根据权利要求1所述的方法,其特征在于,所述业务信息在数据库主键ID中的位数根据业务需求确定,生成主键ID的时间和顺序号的位数分别根据业务系统的服务年限和业务并发量确定,以减小位数冗余,包括:

9.一种电子设备,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-8任一所述的数据库主键短ID生成方法。

...

【技术特征摘要】

1.一种数据库主键短id生成方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求1所述的方法,其特征在于,所述根据业务信息在数据库主键id中的设定位数,对所述业务id取模,包括:

4.根据权利要求1所述的方法,其特征在于,所述根据所述最后生成主键id的时间和顺序号,以及所述取模后的业务id,生成所述业务id在数据库中的主键id,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据当前时间t1、加1后的顺序号n1+1和所述取模后的业务id,生成所述业务id在数据库中的主键id,包括:

6.根据权利要求5所述的方法,其特征...

【专利技术属性】
技术研发人员:赖寿生
申请(专利权)人:叮当快药科技集团有限公司
类型:发明
国别省市:

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

1