Как организовать несколько внешних ключей для gorm

Я делаю проект Go с gorm для mysql.

При создании таблицы mysql с использованием gorm необходимо создать несколько внешних ключей для одной таблицы. До сих пор он создавался как следующий код

такая таблица

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"` 
}

У меня был такой внешний ключ

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

Я чувствую себя немного многословным. Пожалуйста, дайте мне знать, есть ли другие способы, подобные этому.

Спасибо


person jadejoe    schedule 25.09.2019    source источник


Ответы (1)


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

документ: определение внешнего ключа

person chen    schedule 25.09.2019