一对多关系,可以使用 GORM 的 BelongsTo 和 HasMany 方法实现映射。
多对多关系,可以使用 GORM 的 ManyToMany 方法实现映射。
补充
一对多关系
type User struct {
ID uint
Name string
Addresses []Address
}
type Address struct {
ID uint
UserID uint
Address string
}
// User 模型对应的表应该包含一个外键,指向 Address 表中的 UserID 字段
// 使用 BelongsTo 和 HasMany 方法进行关联
func (u *User) Addresses() []Address {
var addresses []Address
DB.Model(&u).Association("Addresses").Find(&addresses)
return addresses
}
func (a *Address) User() User {
var user User
DB.Model(&a).Association("User").Find(&user)
return user
}
多对多关系
type User struct {
ID uint
Name string
Articles []Article `gorm:"many2many:user_articles"`
}
type Article struct {
ID uint
Title string
Content string
Users []User `gorm:"many2many:user_articles"`
}
// User 和 Article 之间的关系通过 user_articles 表进行映射
THE END
暂无评论内容