Has Many
Has Many 与另一个模型建立“一对多”的连接。不同于 Has One,拥有者可以拥有零个或多个模型实例。
例如,一个 User 可以有多张 CreditCard。
type User struct {
gorm.Model
CreditCards []CreditCard
}
type CreditCard struct {
gorm.Model
Number string
UserID uint
}
外键
默认情况下,Has Many 关系使用所有者类型的名称加上其主键作为外键名称。
重写外键
type User struct {
gorm.Model
CreditCards []CreditCard `gorm:"foreignKey:UserRefer"`
}
type CreditCard struct {
gorm.Model
Number string
UserRefer uint
}
自引用 Has Many
type User struct {
gorm.Model
ManagerID *uint
Team []User `gorm:"foreignKey:ManagerID"`
}