2017-09-07 189 views
0

我在RestFul服务中使用了golang gorm,但是现在我怀疑这可能很简单,但我找不到任何示例或特定文档,但对我而言不是很清楚。在Golang gorm中定义关联模型

假设我有表格用户和语言,任何用户都可以有多种语言,任何语言都可以有很多用户,在这种情况下,对于关系数据库建模理论,我们必须创建一个表users_languages,然后检查gorm I看到我将不得不使用多对多的关系。

到现在为止,我已经定义了用户和语言表的结构,让说:

type User struct { 
    gorm.Model 
    Languages   []Language `gorm:"many2many:user_languages;"` 
} 

type Language struct { 
    gorm.Model 
    Name string 
} 

然后我跑的迁移和表用户和语言创建。我的问题是,我应该如何定义user_languages表的结构?如何设置外键?

回答

1

我该如何定义user_languages表的结构?

你应该还描述了many2many关系user_languages模型像UserLanguage为例

type UserLanguages struct { 
    gorm.Model 
    UserId int 
    LanguageId int 
} 

,也许你应该定义主键UserLanguage模型

如何外资钥匙在那里?

格姆生成查询外键的名称自己,在下划线格式(如user_idlanguage_id),重新定义它,你可以在模型领域使用特殊AssociationForeignKey注释,我希望这将有助于!