有时候,使用数据库中自带的“auto increment”可能不能满足需求,这个时候如果是真的需要一个唯一的可以跨数据库应用的主键时,我们得使用UUID(Universally Unique IDentifier)来做这事。
由UUID生成的主键是唯一的,如12f186e6-687e-11ad-843e-001b632783f1这个随机字符串。
创建表(Model)
create_table :posts, :id => false do |t|
t.string :uuid, :limit => 36, :primary => true
end
Model中的设置
class Post < ActiveRecord::Base
set_primary_key "uuid"
end
安装UUID生成器gem:
sudo gem install uuidtools
在lib目录中创建UUIDHelper模块
require 'rubygems'
require 'uuidtools'
module UUIDHelper
def before_create()
self.uuid = UUID.timestamp_create().to_s
end
end
然后在Model中将UUID生成模块插进来:
class Post < ActiveRecord::Base
set_primary_key "uuid"
include UUIDHelper
end
现在,当你新增一个Post记录,保存后,uuid字段会自动填充uuid序列。你还期待什么呢?
分享到:
相关推荐
本教程将深入探讨如何在Hibernate中使用UUID(通用唯一识别码)作为实体类的主键。UUID是一种能确保全球范围内唯一性的标识符,其长度通常为32个字符的十六进制字符串。 ### 1. Hibernate简介 Hibernate是一个开源...
公司实际项目中采用UUID算法生成主键的工具类,有需要的朋友们可以拿去
标题中的“这个包可以让您轻松地在Laravel模型中使用UUID”表明我们正在讨论一个针对Laravel框架的扩展包,它的主要功能是帮助开发者在Laravel应用中的模型中集成和管理UUID(通用唯一标识符)作为主键。Laravel是一...
1.1:要说明这个问题,我们首先来建立三张表,分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机key作为主键,其它我们完全保持不变.根据控制变量法,我们只把每个表的主键使用...
由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; public interface ...
在Laravel中使用UUID或Ulid作为可选键或主键。 composer require riipandi/laravel-optikey 该软件包添加了一个非常简单的特征,可以为您的模型自动生成UUID或Ulid。 快速开始 更新您的架构 首先,您需要在迁移中...
总结来说,"自动生成主键uuid.zip"中的内容可能涉及到如何在Java中使用UUID生成32位的无序和有序ID,这对于数据库主键或其他需要全局唯一标识的场景非常有用。通过理解UUID的生成机制和结合其他数据,开发者可以定制...
2. **配置模型**:在模型中使用新安装的Trait,如`Spatie\Uuid\Uuid`,并设置主键为UUID。例如: ```php use Illuminate\Database\Eloquent\Model; use Spatie\Uuid\Uuid; class MyModel extends Model { use...
总的来说,`laravel-trait-uuid`为Laravel开发者提供了一个简单、优雅的方式,来在模型中使用UUID作为主键,增强了系统的灵活性和安全性。通过理解这一特性的工作原理,你可以更好地利用它来优化你的Laravel项目。
标题中的"PB生成UUID"指的是在编程中使用Protocol Buffers(简称PB)生成Universally Unique Identifier(UUID)。UUID是一个128位的数字,通常表示为32个十六进制数字,用于唯一标识网络中的对象。它在分布式系统、...
在实际应用中,我们可以使用 UUID 来生成唯一的 ID,例如在数据库中生成一个唯一的主键。同时,我们也可以使用 UUID 来标识一些信息,例如用户的 ID、订单的 ID 等。 此外,我们还可以使用 UUID 来实现一些安全机制...
在“UUID封装直接调用直接下载用”的场景下,可能是指在下载过程中利用UUID作为唯一标识来跟踪下载任务。例如,每个下载任务可以关联一个UUID,这样就可以在多任务下载环境中区分不同的下载请求,便于管理和控制。...
创建主键为UUID的非增量模型。 安装 通过作曲家 $ composer require stevenmaguire/laravel-uuid-model 用法 扩展UuidModel class User extends Stevenmaguire \ Laravel \ UuidModel { // } 默认情况下,它扩展...
"Laravel开发-laravel-model-uuid"的主题旨在介绍如何在Laravel模型中优雅地集成和使用UUID作为主键。 1. **什么是UUID?** UUID是一个128位的数字,由16个字节组成,可以确保在全球范围内的唯一性。通常以32个...
### Linux使用UUID挂载数据盘详解 #### 一、引言 在Linux系统中,挂载数据盘是一项常见的任务,特别是在使用云服务提供商(如天翼云)时,用户通常会遇到除了默认的系统盘外,还有一个或多个可扩展的数据盘。本文将...