简体   繁体   English

如何为gorm组织多个外键

[英]How to organize multiple foreign keys for gorm

I am making a Go project with gorm for mysql.我正在为 mysql 制作一个 Go 项目。

When creating a mysql table using gorm, it is necessary to create multiple foreign keys for one table.使用gorm创建mysql表时,需要为一张表创建多个外键。 Until now, it was created like the following code到现在为止,它是像下面的代码一样创建的

such a table这样的表

type Members struct {
    ID           int32     `gorm:"AUTO_INCREMENT" json:"id" from:"id"`
    MyselfUserID int32     `gorm:"NOT NULL" json:"myself_user_id" from:"myself_user_id"` 
    MemberUserID int32     `gorm:"NOT NULL" json:"member_user_id" from:"family_user_id"` 
    FirstName    string    `json:"first_name" from:"first_name"`
    LastName     string    `json:"last_name" from:"last_name"`
    Relationship string    `json:"relationship" from:"relationship"`
    Image        string    `json:"image" from:"image"`                       
    Version      int32     `gorm:"column:version" json:"version" form:"version"`        
    UpdatedAt    time.Time `gorm:"column:updated_at" json:"updated_at" form:"updated_at"`
    CreatedAt    time.Time `gorm:"column:created_at" json:"created_at" form:"created_at"` 
}

I had a foreign key like this我有一个像这样的外键

MgtDB.AutoMigrate(&Members{}).AddForeignKey("myself_user_id", "users(user_id)", "RESTRICT", "RESTRICT").AddForeignKey("member_user_id", "users(user_id)", "RESTRICT", "RESTRICT")

I feel a little verbose Please let me know if there are other ways like this我觉得有点冗长请告诉我是否有其他类似的方法

Thanks谢谢

type Members struct {
    ...
    MemberUserID int32
    MemberUser   User   `gorm:"foreignkey:MemberUserID"`
}

document: define a foreign key文档:定义外键

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM