【问题标题】:define associative model in Golang gorm在 Golang gorm 中定义关联模型
【发布时间】:2017-09-07 21:30:02
【问题描述】:

我在我的 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_languages 表的结构?外键是怎么设置的?

【问题讨论】:

    标签: go go-gorm


    【解决方案1】:

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

    您还应该描述多对多关系的 user_languages 模型,例如 UserLanguage

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

    也许您应该为 UserLanguage 模型定义主键

    外键是怎么设置的?

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

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 2021-10-02
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多