Я не могу создать внешние ключи в моей таблице сопоставления для am: n-Relations.
Моя проблема:
Я работаю с новейшей версией Shopware (Shopware 6) на тестовой машине и я хочу разработать плагин, который создает пользовательский объект. Процесс создания моего пользовательского объекта (имя таблицы: автомобиль) и процесс таблицы с миграцией магазина работают без проблем. На следующем шаге я создал таблицу сопоставления (имя: car_product), которая обрабатывает отношение m: n со стандартной таблицей «product» - «shopware».
На данный момент я не могу добавить свои внешние ключи, которые указывали на таблицу product . Там нет ошибки в процессе выполнения. Внешний ключ к таблице машин работает нормально.
Я полагаю, моя схема неверна или возникла проблема с таблицей продуктов.
CREATE TABLE IF NOT EXISTS car (
`id_car` BINARY(16) NOT NULL,
`hsn` VARCHAR(3) NOT NULL,
`tsn` VARCHAR(4) NOT NULL,
`manufacturer` VARCHAR(45) NULL,
`model` VARCHAR(45) NULL,
`year` INT NULL,
`created_at` DATETIME(3) NOT NULL,
`updated_at` DATETIME(3) NULL,
PRIMARY KEY (`id_car`),
UNIQUE (`hsn`, `tsn`));
CREATE TABLE IF NOT EXISTS car_product(
`product_id` BINARY(16) NOT NULL,
`product_version_id` BINARY(16) NOT NULL ,
`id_car` binary(16) Not Null ,
PRIMARY KEY (`product_id`, `product_version_id`, `id_car`),
INDEX `fk_product_car_idx` (`id_car` ) ,
INDEX `fk_product_car_product_idx` (`product_id` , `product_version_id`) );
CREATE TABLE product (
id binary(16) ,
version_id binary(16),
...
cars binary(16),
)
Идентификатор, version_id Атрибуты внутри таблицы продукта являются первичными ключами
SQL -Просьба добавить внешние ключи:
Alter Table `car_product` ADD FOREIGN KEY (`product_id`,`product_version_id`) REFERENCES `product` (`id`, `version_id`) ON DELETE CASCADE ON UPDATE CASCADE ;
Alter Table `car_product` ADD FOREIGN KEY (`id_car` ) REFERENCES `car` (`id_car`) ON DELETE CASCADE ON UPDATE CASCADE;