Ограничения внешнего ключа MySQL не работают с моим дизайном базы данных - PullRequest
0 голосов
/ 11 декабря 2019

Я создаю сайт сравнения цен на товары с использованием импорта XML с других сайтов. Импортированные продукты попадают в таблицу под названием «продукты».

Продукты содержат:
- id
- SKU (код продукта)
- url
- shopName
- цена

У меня есть еще одна таблица с именем 'productshop. Здесь таблица содержит следующие значения:
- id (PK)
- SKU (внешний ключ к продукту в таблице «products»)
- отображаемое имя магазина

Как это работает: вручную администратор добавляет запись в productShop. Администратор вводит отображаемое название магазина и код SKU, который используется этим магазином. Таким образом, этот продукт добавляется на веб-сайт.

Это все работает нормально, но у меня возникает следующая проблема:

Когда таблица продукта обновляется, возможно, что магазинвременно нет товара на складеЭто означает, что его больше нет в XML-файле, который я получаю от них. Я также не хочу мгновенно удалять запись «productshop», поскольку возможно, что товар снова станет доступен, и тогда мне придется добавить его снова вручную.

Итак, в основном: я хочуПродуктовый магазин, чтобы иметь возможность ссылаться на продукт, который может не существовать. Невозможно удалить продукт прямо сейчас, когда productShop ссылается на него.

Это плохой дизайн базы данных? Стоит ли отключать ограничения внешнего ключа или это просто очень плохая идея?

...