一、GORM的约定

  • 使用ID作为主键
  • 使用结构体名的 蛇形复数 作为表名(默认是这样,也可以使用Table来指定操作的表名)
  • 使用字段名的 蛇形 作为列名
  • 使用 CreatedAt UpdatedAt 字段来追踪创建时间、更新时间

二、gorm.Model

为了更方便的使用后面GORM提供一系列CURD的函数
GORM提供了gorm.Model
其包括字段 ID CreatedAt UpdatedAt DeletedAt
GORM 约定使用 CreatedAt、UpdatedAt 追踪创建/更新时间。如果您定义了这种字段,GORM 在创建、更新时会自动填充 当前时间

注:当前时间需要在创建GORM数据库连接的时候就进行配置,否则时间不会是当前电脑的系统时间
image.png
image.png

gorm.Model的具体定义

  1. // gorm.Model 的定义
  2. type Model struct {
  3. ID uint `gorm:"primaryKey"`
  4. CreatedAt time.Time
  5. UpdatedAt time.Time
  6. DeletedAt gorm.DeletedAt `gorm:"index"`
  7. }

嵌入实体类中

  1. type User struct {
  2. gorm.Model
  3. Name string
  4. }
  5. // 等效于
  6. type User struct {
  7. ID uint `gorm:"primaryKey"`
  8. CreatedAt time.Time
  9. UpdatedAt time.Time
  10. DeletedAt gorm.DeletedAt `gorm:"index"`
  11. Name string
  12. }

相对应的数据库
image.png