在Golang gorm中定义关联模型

时间:2017-09-07 21:30:03

标签: go go-gorm

我在RestFul服务中使用golang gorm,但是,现在我怀疑可能很简单,但我找不到任何示例或特定文档,我不清楚。

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

到目前为止,我有定义用户和语言表的结构,比如说:

var cmdText = "[DoStuff] @Name = @name_param, @Age = @age_param";
var sqlParams = new[]{
   new SqlParameter("name_param", "Josh"),
   new SqlParameter("age_param", 45)
};

context.Database.SqlQuery<myEntityType>(cmdText, sqlParams)

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

1 个答案:

答案 0 :(得分:1)

  

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

您还应该为许多2个关系描述user_languages模型,例如UserLanguage

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

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

  

如何设置外键?

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