我在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表的结构?如何设置外键?
答案 0 :(得分:1)
我应该如何定义user_languages表的结构?
您还应该为许多2个关系描述user_languages
模型,例如User
和Language
type UserLanguages struct {
gorm.Model
UserId int
LanguageId int
}
可能您应该为User
和Language
模型定义主键
如何设置外键?
GORM自己以下划线格式(如user_id
,language_id
)生成查询中的外键名称,为了重新定义它,您可以在模型字段上使用特殊的AssociationForeignKey
注释,我希望它会有所帮助!