Как мне сопоставить ассоциацию GORM, где внешний ключ не является PK другой таблицы?
У меня есть следующая схема:
CREATE TABLE `supplier` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`partner_id` int(11) NOT NULL,
`supplier_id` int(11) NOT NULL
PRIMARY KEY (`id`)
)
CREATE TABLE `ad` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`partner_id` int(11) NOT NULL,
`supplier_id` int(11) NOT NULL,
`ad_id` varchar(30) NOT NULL,
`ad_details` text NOT NULL
PRIMARY KEY (`id`)
)
Отношение FK находится между ad.supplier_id
и supplier.supplier_id
( НЕ supplier.id
).
РЕДАКТИРОВАТЬ: Ответ @tim_yates ниже, кажется, частично работает.
Поскольку supplier.supplier_id
не является PK таблицы supplier
, поэтому возможно дублирование supplier.supplier_id
.
Фактически, ключ таблицы supplier
это кортеж (supplier.supplier_id
, supplier.partner_id
).Как мне смоделировать это ограничение?