1 回答
TA贡献1874条经验 获得超12个赞
第一点是因为您正在使用自定义主键,所以您不应该使用它
gorm.Model
,因为它包含ID
字段。参考第二点根据你的描述,
store
(location) 和 是一对多的关系drink
。这意味着一家商店可以有多种饮料,但一种饮料应该只属于一家商店。在one-to-many
关系中,旁边应该有一个参考或关系 IDmany
。这意味着你在drink
表中的情况。那么你的结构应该是这样的:
我的模型结构
type MyModel struct {
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
}
位置结构(商店)
type Location struct {
MyModel
ID uuid.UUID `gorm:"primary key;type:uuid"`
// other columns...
Drinks []Drink
}
饮料结构
type Drink struct {
MyModel
ID uuid.UUID `gorm:"type:uuid;primary key"`
//other columns...
LocationID uuid.UUID// This is important
}
然后gorm会自动考虑drink
表中的 LocationID 将引用位置表的 ID 字段。您还可以在 Location 结构的 Drinks 数组字段中明确指示它使用 gorm gorm:"foreignKey:LocationID;references:ID"
。
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报