K-2
@K-2

2 таблицы: Товары, Параметры. Как составить запрос?

есть 2 таблицы:

product:
id

params:
id
id_product
params
(тут могут быть: color, price, size и др..)
value (значения для каждого параметра)

Как составить запрос, если надо, например, найти - id_product с цветами blue,green , ценой от 50 до 100 и размерами от 39 до 41
-------------------------------------------------------------------------------------------------------------------------
И второй вариант таблиц(как лучше организовывать таблицы, по первому или второму вариантам?):

product:
id
price

params:
id
id_product
params
(тут могут быть: color, size и др..)
value (значения для каждого параметра)
  • Вопрос задан
  • 385 просмотров
Пригласить эксперта
Ответы на вопрос 3
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Почитайте про entity-attribute-value таблицы

Если у вас цена на товар в зависимости от цвета, размера или любого другого параметра не меняется, то цена хранится в таблице products.

Структура products_params:
product_id | param  | value
1          | color  | green
1          | color  | blue
2          | color  | green
3          | color  | blue
1          | weight | 300


Про первичный ключ не забудьте.

Ну и запрос на получение всех цветов товара с id = 1:
select * from products_params where product_id = 1 and param = 'color'
Ответ написан
tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT
а разве не проще, если сделать 1 таблицу, где сразу, у каждого продукта, будут параметры?
id | color | price |  size  | weight  |  other_info
Ответ написан
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
По-моему оба варианта мало отличаются и оба плохие.
Что мешает для каждого параметра сделать таблицу? Или вообще поместить параметры в таблицу товаров?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы