【问题标题】:how to make correctly has many associations in Golang with go如何正确地在 Golang 中与 go 有很多关联
【发布时间】:2020-01-16 13:28:01
【问题描述】:

假设一位老师有很多学生,学生只有一位老师,如何在 Gorm Golang 上实现?

我的看法是

type Teacher struct {
   gorm.Model 
   Name string
   Student []Student
}

type Student struct {
  gorm.Model
  Name string
}

这些是正确的吗?如果不是如何使其关联?如果我们查询它来创建呢?我应该在上面创建另一个 StudentID 吗?

【问题讨论】:

  • 您不能将教师置于学生之下。上面那个看起来不错。这与设计并不矛盾。

标签: postgresql go go-gorm


【解决方案1】:
type Teacher struct {
   gorm.Model 
   Name string
}

type Student struct {
  gorm.Model
  Name string
  TeacherId uint `gorm:"TYPE:integer REFERENCES teachers;index"`
}

【讨论】:

  • 假设我有这样的 JSON 请求:{ studentName: "me", teacher: ["myTeacher", "secondeTeacher"]},它会在 student 上创建 teacherID 吗? ,
  • GORM 不会基于任何 json 创建记录。将 JSON 解组到结构并(可能)将它们映射到数据库级模型是您的任务
  • 我很困惑如何在 go 中请求您的模式,我确实喜欢这样的请求 &req{ 老师:“yess”,学生:[]学生{“tes”,“testone” }} 然后它会在老师身上创建学生
  • GORM 不适用于 JSON,创建记录需要使用 db.Create() 方法 gorm.io/docs/create.html
  • 是的,您需要先创建教师,然后创建学生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多