在Golang gorm中定义关联模型
我在RestFul服务中使用了golang gorm,但是,我现在怀疑这很简单,但找不到任何示例或特定文档,这对我来说并不明确。
假设我有表用户和语言,任何用户都可以有多种语言,任何语言都可以有许多用户,在这种情况下,对于关系数据库建模理论,我们必须创建一个表users_languages,并检查gorm,我发现必须使用多对多关系。
现在,我已经有了定义用户和语言表的结构,可以这样说:
type User struct { gorm.Model
Languages []Language `gorm:"many2many:user_languages;"`
}
type Language struct {
gorm.Model
Name string
}
然后,我运行迁移并创建了表User和Language。我的问题是,我该如何定义user_languages表的结构?外键如何设置?
回答:
我该如何定义user_languages表的结构?
你也应该描述user_languages
为类似many2many关系模型User
,并Language
为例
type UserLanguages struct { gorm.Model
UserId int
LanguageId int
}
可能应该为User
和Language
模型定义主键
外键如何设置?
GORM会在自己的查询中以下划线格式(如user_id
,language_id
)生成外键名称,为重新定义外键,您可以AssociationForeignKey
在模型字段上使用特殊注释,希望对您有所帮助!
以上是 在Golang gorm中定义关联模型 的全部内容, 来源链接: utcz.com/qa/433364.html