Я создаю платформу, на которой поставщики могут добавлять продукты, а владельцы магазинов могут «копировать» эти продукты в свои магазины и продавать их.
Поставщик может создавать продукты, и он может добавлять к ним всевозможные атрибуты, такие как размер, цвета.
Когда Магазин хочет использовать один из продуктов Поставщика, он может выбрать, какие атрибуты он хочет предложить. Например, если у поставщика есть в продаже футболка трех размеров. Магазин может продать эту футболку только двух размеров.
Итак, у меня есть таблица Товары, которая выглядит так. Поставщик добавляет сюда товары.
+----+-------------+-------+
| id | description | price |
+----+-------------+-------+
| 1 | T-Shirt | 10 |
| 2 | Car | 100 |
+----+-------------+-------+
У меня есть таблица атрибутов продукта, которую также заполняет поставщик.
+------------+-------------+------------------------------+
| product_id | description | options |
+------------+-------------+------------------------------+
| 1 | size | ["small", "medium", "large"] |
| 1 | color | ["white", "black"] |
+------------+-------------+------------------------------+
Сторона магазина
Когда владелец магазина хочет товар. Я делаю запись в таблице shop_products, указывая, какой магазин какой продукт хочет, и добавляю необязательное изображение, как показано ниже
+---------+------------+-----------+
| shop_id | product_id | image |
+---------+------------+-----------+
| 1 | 2 | image.jpg |
| 1 | 3 | image.jpg |
+---------+------------+-----------+
Остается только один вопрос: как убедиться, что Магазин может выбирать, какие атрибуты он хочет получить.
- Должен ли я создать таблицу shop_product_attributes .. Но я не могу установить связь для "многие-ко-многим", потому что у нее нет идентификатора?