为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 gorm 中创建一对一关系和外键?

如何在 gorm 中创建一对一关系和外键?

Go
犯罪嫌疑人X 2022-12-19 11:54:13
Has One和Has Many有什么区别 Belong To我有 3 个模型UserProfile哪里profile和user应该有one to one关系Categorycategory应该foreign key去哪里usertype User struct {gorm.ModelEmail *stringName string...}type Profile struct {gorm.ModelPhone stringAddress string...}type Category struct {gorm.ModelName string}
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

为了User Has One Profile


type User struct {

   gorm.Model

   Email *string

   Name string

   Profile Profile //this is the key different

}

type Profile struct {

   gorm.Model

   UserId int //this is important

   Phone string

   Address string

}

为了Profile Belong To User


type User struct {

   gorm.Model

   Email *string

   Name string

}

type Profile struct {

   gorm.Model

   UserId int //this is important

   User User //this is the key different

   Phone string

   Address string

}

为了User Has Many Category


type User struct {

   gorm.Model

   Email *string

   Name string

   CategoryList []Category

}

type Category struct {

   gorm.Model

   UserId int //this is important

   Name string

}

编辑:UserId 字段将成为您的外键。


如果你想让 gorm 自动为你创建表,你可以AutoMigrate在 main.go中使用


err := db.AutoMigrate(your_model_package.User{})

if err != nil {

    return err

}


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信