【Golang】Gorm用过吗?如果我想实现一对多和多对多关系的映射应该怎么做?用什么关键字?(约88字)

一对多关系,可以使用 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
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容