2017-09-07 191 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註釋,我希望這將有助於!