go 学习 第二十七章 Go语言 gorm 模型定义

模型定义

模型一般都是普通的 Golang 的结构体,Go 的基本数据类型,或者指针。sql.Scanner 和 driver.Valuer,同时也支持接口。

例子:

type User struct {
  gorm.Model
  Name         string
  Age          sql.NullInt64
  Birthday     *time.Time
  Email        string  `gorm:"type:varchar(100);unique_index"`
  Role         string  `gorm:"size:255"` //设置字段的大小为255个字节
  MemberNumber *string `gorm:"unique;not null"` // 设置 memberNumber 字段唯一且不为空
  Num          int     `gorm:"AUTO_INCREMENT"` // 设置 Num字段自增
  Address      string  `gorm:"index:addr"` // 给Address 创建一个名字是  `addr`的索引
  IgnoreMe     int     `gorm:"-"` //忽略这个字段
}

结构标签

标签是声明模型时可选的标记。GORM 支持以下标记:

支持的结构标签

标签说明
Column指定列的名称
Type指定列的类型
Size指定列的大小,默认是 255
PRIMARY_KEY指定一个列作为主键
UNIQUE指定一个唯一的列
DEFAULT指定一个列的默认值
PRECISION指定列的数据的精度
NOT NULL指定列的数据不为空
AUTO_INCREMENT指定一个列的数据是否自增
INDEX创建带或不带名称的索引,同名创建复合索引
UNIQUE_INDEX类似 索引,创建一个唯一的索引
EMBEDDED将 struct 设置为 embedded
EMBEDDED_PREFIX设置嵌入式结构的前缀名称
-忽略这些字段

关联的结构标签

有关详细信息,请查看「关联」部分

标签说明
MANY2MANY指定连接表名称
FOREIGNKEY指定外键
ASSOCIATION_FOREIGNKEY指定关联外键
POLYMORPHIC指定多态类型
POLYMORPHIC_VALUE指定多态的值
JOINTABLE_FOREIGNKEY指定连接表的外键
ASSOCIATION_JOINTABLE_FOREIGNKEY指定连接表的关联外键
SAVE_ASSOCIATIONS是否自动保存关联
ASSOCIATION_AUTOUPDATE是否自动更新关联
ASSOCIATION_AUTOCREATE是否自动创建关联
ASSOCIATION_SAVE_REFERENCE是否引用自动保存的关联
PRELOAD是否自动预加载关联

 

        轉載自 :https://learnku.com/docs/gorm/2018/models/3782?show_current_version=yes#topics-list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值