我在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为例
user_languages
User
Language
type UserLanguages struct { gorm.Model UserId int LanguageId int }
可能应该为User和Language模型定义主键
外键如何设置?
GORM会在自己的查询中以下划线格式(如user_id,language_id)生成外键名称,为重新定义外键,您可以AssociationForeignKey在模型字段上使用特殊注释,希望对您有所帮助!
user_id
language_id
AssociationForeignKey