Skip to main content

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"`
}