SQL - вставка нескольких категорий в столбец - PullRequest
0 голосов
/ 13 октября 2018

У меня есть таблица, в которой я храню продукты, и в той же таблице я храню идентификатор категории, в которой я хочу, чтобы продукт находился.

Моя таблица продуктов выглядит следующим образом:

id | product_name | category_id | price

И тогда у меня есть таблица категорий:

id | category

Моя проблема в том, чтобы узнать, как я могу вставить несколько категорий в мой category_id, и если это возможно.

Если нетКакой лучший способ, которым я мог сделать это?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вам нужны отношения many to many, что означает, что вам нужна третья таблица, назовем ее ProductCategories, в этом случае у вас будет

  • Продукты

    id | product_name | category_id | price
    
  • Категория

    id | category
    
  • Категория продуктов

      PruductID | CategoryID (combined PK)
    
0 голосов
/ 13 октября 2018

Возможно, но вы действительно не хотите туда идти.Хранение нескольких значений в одном столбце данных является ужасной идеей в 99,9999% случаев.

Для получения дополнительной информации прочитайте Действительно ли плохо хранить список с разделителями в столбце базы данных? ,где вы увидите множество причин, по которым ответ на этот вопрос будет Абсолютно да!

Что вы хотите сделать, это добавить еще одну таблицу для хранения отношений между продуктами и категориями,Это называется отношением «многие ко многим».

Эта новая таблица должна содержать идентификатор продукта в одном столбце и идентификатор категории в другом и иметь составной первичный ключ, который является комбинацией обоих этихстолбцы.

Таким образом, вы можете иметь много товаров в одной категории и много категорий для одного товара.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...