这是什么"额外"字段gorm:"primary_key"
在创建结构时会这样做吗?
type Model struct {
ID uint `gorm:"primary_key"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time
}
答案 0 :(得分:1)
它是gorm
包使用的标记,让包知道该字段将用作主键
gormSettings := parseTagSetting(field.Tag.Get("gorm"))
if _, ok := gormSettings["PRIMARY_KEY"]; ok {
field.IsPrimaryKey = true
modelStruct.PrimaryFields = append(modelStruct.PrimaryFields, field)
}
答案 1 :(得分:0)
这就是我所说的'注释'它们被各种包(在本例中为gorm
)使用,以提供有关如何处理该类型的更多信息。最常见的是你在数据传输对象(如json和xml)上看到它们,在大多数用例中,这两个包都需要它们。
在这种情况下,您告诉gorm
此字段是主键。从粗略的一瞥那些包文档来看它是用于关系建模(比如设置类型来映射到rmdb或者那种性质的东西)所以在这里看看像nullable,pk或fk这样的东西是有意义的。