System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术实施例涉及计算机,尤其涉及一种数据库主键短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、其中,业务信息在数据库主键
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所述的方法,其特征...
【专利技术属性】
技术研发人员:赖寿生,
申请(专利权)人:叮当快药科技集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。