【问题标题】:Foreign key and Association in gorm not created correctly未正确创建gorm中的外键和关联
【发布时间】:2020-01-15 16:05:27
【问题描述】:

我试图在 PostgreSQL 上为它属于数据的人和数据属于个人的人创建模型关联 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"`
    }
)

我想在数据表上有 Person_id 是来自 Person 表的外键,并且在我的 DBeaver 上的 ER 图上看到之后,Person 表有 Data_id 作为来自数据表的外键,那些不是我希望的那样创建的:(这不是ER图上的任何关系,我确定我上面的协会错了,谁能给我一些信息来解决这个问题?

【问题讨论】:

    标签: postgresql go go-gorm go-gin


    【解决方案1】:

    您可以在自动迁移数据库时使用 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

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 2016-09-19
      • 1970-01-01
      • 2020-09-10
      相关资源
      最近更新 更多