现在的位置: 首页 > 综合 > 正文

浅谈UUID主键

2017年10月11日 ⁄ 综合 ⁄ 共 590字 ⁄ 字号 评论关闭

       前段时间经理让使用UUID设置为主键,UUID可以自动生成一个36字符组成的字符串,UUID是由10个阿拉伯数字加上26个字母组成,8-4-4-4-12的形式组成,例如:4c47cf4a-a55a-4fce-8cd9-024a790714b010。由此可见UUID会产生无数种的组合,不用担心会产生重复。

       产生UUID的方法也很简单:

String uuid=UUID.randomUUID().toString();

 

        那使用UUID自动生成主键有什么好处呢?平时常用到自动生成主键的方式就是序列,在Oracle中写一个序列,将触发器写在Oracle中或者写在Java代码中,这样就有一个问题,当需要迁移数据库的时候,容易将序列遗忘使得程序无法运行。

       有些人会选择复合主键,或者用业务的某个信息作为主键。早期的数据库设计,大多都是用业务信息做主键,在实践中吃了很多亏后,大家更认同用业务无关的字段来做主键。比如用订单编号来做主键,开始大家觉得订单编号应该是唯一的编号。随着业务的变化,客户在使用中提出,订单可以作废,但是该记录不能删除,而且需要新建一个具有相同订单编号的订单,麻烦来了。

       综上所述,用UUID作为主键有他的优越性:

1、操作产生简单;

2、维护简单;

3、不会产生重复值;

4、使得主键与业务分离开来。

      

 

 

抱歉!评论已关闭.