一对多,多对多可以同时存在两张表中吗?

比如:
1,用户创建文章,用户和文章是一对多关系
2,用户收藏文章,用户和文章是多对多关系
这样的关系可以如何定义结构体呢?

讨论数量: 2

创建中间表收藏表即可,收藏表里包含用户id和文章id

5年前 评论

@Tap4Fine 如果按照文档中,结构体应该怎样填写呢?比如

type User struct {
    gorm.Model
    Name          string         `gorm:"type:varchar(12);"` 
    Articles      []*Article     `json:"articles,omitempty"`                  //关联文章表,一对多关系
}
type Article struct {
    gorm.Model
    Title      string `gorm:"type:varchar(30);index;"`            //标题
    User       *User  `json:",omitempty"`                         //表示Article属于User,外键是UserID,一对多关系
    UserID     int    `gorm:"index"`
}

这样写的话,是把一对多关系写出来了,但是多对多怎么在上述的代码中填写?

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!