gorm外键

来源:10-6 中间件类型type 和 version 创建

慕瓜9063200

2023-03-28

老师你好,在gorm官方文档中我没有找到关于外键的描述,有些不理解,

type MiddleType struct {
	ID             int64           `gorm:"primary_key;not_null;auto_increment" json:"id"`
	MiddleTypeName string          `json:"middle_type_name"`
	MiddleVersion  []MiddleVersion `gorm:"foreign_key:MiddleTypeID" json:"middle_version"` 
}

type MiddleVersion struct {
	ID                       int64  `gorm:"primary_key;not_null;auto_increment" json:"id"`
	MiddleTypeID             int64  `json:"middle_type_id"`
	MiddleDockerImage        string `json:"middle_docker_image"`
	MiddleDockerImageVersion string `json:"middle_docker_image_version"`
}

这里有两个结构体,也是两张表,那么外键存在于哪个结构体中,参考了哪个表的主键

写回答

1回答

Cap

2023-04-01

两个结构体分别对应两张表,它们之间的关系是:一个 MiddleType 可以有多个 MiddleVersion。这里的外键关系定义在 MiddleVersion 结构体中。

具体来说,MiddleVersion 结构体中的 MiddleTypeID 字段是外键,它引用了 MiddleType 结构体(对应的表)中的主键 ID。这个关系通过 MiddleType 结构体中的 MiddleVersion 字段上的 gorm:"foreign_key:MiddleTypeID" 标签定义。这个标签告诉 GORM,MiddleType 结构体中的 MiddleVersion 字段与 MiddleVersion 结构体中的 MiddleTypeID 字段之间存在外键关系。


1
0

Go 开发者的涨薪通道,自主开发 PaaS 平台核心功能

云原生专家带来稀缺的 PaaS 平台实战,带你直击核心业务+技术

400 学习 · 169 问题

查看课程