Как определить внешний ключ в модели библиотеки GORM со ссылкой на другой идентификатор таблицы? - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть эти три модели

type Store struct {
    Id int `gorm: "type:int;primary_key;AUTO_INCREMENT;NOT NULL;UNIQUE"`
    Store_Id string `gorm:"type:varchar(190)";"NOT NULL";"UNIQUE"`
}

type File struct {
    Id int `gorm: "type:int;primary_key;AUTO_INCREMENT;NOT NULL;UNIQUE"`
    Organization_Id string `gorm:"type:varchar(190)";"NOT NULL"`
    File_Id string `gorm:"type:varchar(190)";"NOT NULL";"UNIQUE"`
}

type File_Store_Linker struct {
    Id int `gorm: "type:int;primary_key;AUTO_INCREMENT;NOT NULL"`
    File_Id string `gorm:"type:varchar(190)";"NOT NULL"`
    Store_Id string `gorm:"type:varchar(190)";"NOT NULL"`
    File_Type string `gorm:"type:varchar(50)";"NOT NULL"`
}

Я хочу создать такие внешние ключи в структуре File_Storage_Linker.

create table file_store_linker (
id INT NOT NULL AUTO_INCREMENT,
file_id VARCHAR(190) NOT NULL,
store_id VARCHAR(190) NOT NULL,
file_type VARCHAR(50) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (file_id)
REFERENCES file (file_id),
FOREIGN KEY (store_id)
REFERENCES storage (store_id)
);

Как это можно сделать?

...