我尝试在PostgreSQL上为属于数据的人和属于数据的人建立模型Association ForeignKey 这是我的结构
type (
Data struct {
ID uint `gorm:"auto_increment"`
PersonID uint
Person *Person `gorm:"foreignkey:id;association_foreignkey:PersonID"`
Birthday *time.Time
Salary float64 `gorm:"type:money"`
}
Person struct {
gorm.Model
Email string `gorm:"type:varchar(100);unique_index;not null"`
Password string `gorm:"type:varchar(100);not null"`
Role string `gorm:"type:varchar(30);not null"`
DataID uint
Data *Data `gorm:"foreignkey:id;association_foreignkey:DataID"`
}
)
我想在ER Diagram上看到数据表之后,Person_id
是来自Person表的外键,而且Person表也Data_id
是来自数据表的外键在我的DBeaver上,这些不是按照我的意愿创建的:(这与ER图上没有任何关系,我确定我的上述协会有问题,有人可以给我一些信息来解决这个问题吗?
答案 0 :(得分:0)
自动迁移数据库时,可以使用gorm的功能。
db.Model(&Data{}).AddForeignKey("person", "person(id)", "NO ACTION", "NO ACTION")
db.Model(&Person{}).AddForeignKey("data", "data(id)", "NO ACTION", "NO ACTION")
您也可以检查以下内容:Gorm Migration