Many To Many
Many To Many 会在两个模型之间建立一个连接表。
例如,User 和 Language,一个 User 可以说多种 Language,一种 Language 也可以被多个 User 使用。
type User struct {
gorm.Model
Languages []Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
}
当使用 AutoMigrate 为 User 创建表时,GORM 会自动创建连接表 user_languages。
反向引用
type User struct {
gorm.Model
Languages []Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
Users []User `gorm:"many2many:user_languages;"`
}
重写外键
type User struct {
gorm.Model
Languages []Language `gorm:"many2many:user_languages;foreignKey:Refer;joinForeignKey:UserRefer;References:ID;joinReferences:LanguageID"`
}
type Language struct {
gorm.Model
Name string
}