GORM 入门笔记(四)模型创建与关键标签
什么是模型
来自官方文档:
模型是标准的 struct,由 Go 的基本数据类型、实现了 Scanner 和 Valuer 接口的自定义类型及其指针或别名组成
1 | type User struct { |
关于模型内的指针类型,简单地说就是有指针应当对应可以为 NULL ,请看这篇
模型有什么用
是 gorm 进行各种操作的基础
一个书写良好的模型会让你对数据库的操作事半功倍
模型定义的关键点
约定
GORM 倾向于约定,而不是配置。默认情况下,GORM 使用 ID
作为主键,使用结构体名的 蛇形复数
作为表名,字段名的 蛇形
作为列名,并使用 CreatedAt
、UpdatedAt
字段追踪创建、更新时间
使用上面的模型建表,id 自动成为主键
gorm.Model
这是 GORM 预定义的一个模型,方便使用的
1 | // gorm.Model 的定义 |
嵌入结构体
以匿名结构体
结构体直接是可以直接嵌入的,先看匿名的情况
1 | type User struct { |
其实就等于把 gorm.Model
直接平铺进里面
非匿名结构体
而如果要实现层级结构的话(这里指的是在 go 中),就不能匿名
并且加上嵌套字段的标签
1 | type Model struct { |
而且你会发现这样创出来是没有主键的,下面将介绍标签,并使用标签将 UUID 设为主键
标签
标签是用反引号括起来的,里面可以定义一些属性
常用的标签有
- column
- primaryKey
- unique
- default
- precision
- size
- not null
- index
- comment
- …
还有一些是和权限,关联相关的,后面再讲
示例
1 | type Model struct { |
评论
GiscusTwikoo