在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

}

可能应该为UserLanguage模型定义主键

外键如何设置?

GORM会在自己的查询中以下划线格式(如user_idlanguage_id)生成外键名称,为重新定义外键,您可以AssociationForeignKey在模型字段上使用特殊注释,希望对您有所帮助!

以上是 在Golang gorm中定义关联模型 的全部内容, 来源链接: utcz.com/qa/433364.html

回到顶部