官方给出代码如下
// `User` 属于 `Company`,`CompanyID` 是外键
type User struct {
gorm.Model
Name string
CompanyID int
Company Company
}
type Company struct {
ID int
Name string
}
自己实际用到的:
最近项目开发过程中遇到了一个问题,有两个结构体,试题和考题,试题没有分数,考题拥有分数,试题可以被多次选中充当考题,每次充当考题的时候都会有一个分数。对于一个试题来时,第一次被选中充当考题是两分,第二次可能就变成了五分。 使用belong to来表示试题和考题的关系
type SinglePaperQuestion struct {
global.GVA_MODEL
ExamQuestionID uint
SingleQuestion ExamQuestion
Score int `json:"score"` //考题
}
type ExamQuestion struct {
global.GVA_MODEL
Content string `json:"content" gorm:"试题内容"`
Analysis string `json:"analysis" gorm:"comment:试题解析"`
}
然后去创建,一直报错,显示关系出错
最后发现,需要把ExamQuestionID 改成SingleQuestionID ,不能以结构体的名称+ID来作为外键,而是以变量名SingleQuestion + ID 来作为外键。
官网上面
![](https://img-blog.csdnimg.cn/img_convert/b4f555cd927b99b798d978b36f9d7bbc.png)
三个完全起的一模一样,所以才被误导了。