美文网首页
唯一主键生成方式

唯一主键生成方式

作者: Asher_Tan | 来源:发表于2017-04-22 09:06 被阅读175次

做后端开发数据表的主键生成方式项目前期可能觉的无所谓,有用递增的、UUID的、中心服务生成主键的,这些方式各有利弊。下面记录下最近项目使用的一种唯一主键生成方式。

首先用户ID是关键,也是在其它表中的主键生成需要来标识的。用户ID的我直接是采用UUID.v4的,采用简单的方式实现一个全局唯一的。
接下来其它的表中的主键使用 "精确时间+用户ID后几位+随机字符串+表标识前缀"
如订单表:
201704220833543 + UUID.v4().substring(-6) + RandomStr() + 'o'
精确时间打毫秒 + 用户ID后6位 + 随机字符串 + 订单表order前缀标识'o'

优点:

  1. 基本可以保证ID唯一,因为在毫秒级别单个用户在单个表中生成的记录数有限,随机字符串长度也弄到6位以上的话很难重复。
  2. 省去再添加一个时间索引,直接按照表ID排序即是按时间排序

以上就是我最近项目的唯一ID生成方式,可能有些东西没考虑到,欢迎来怼,一起提高成长。

相关文章

网友评论

      本文标题:唯一主键生成方式

      本文链接:https://www.haomeiwen.com/subject/qrzjzttx.html