SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.10.2007 12:27:59

izstora
Участник
Зарегистрирован: 26.09.2007
Сообщений: 23

Стоит ли делать приоритеты товарам

Вопрос в продолжение этой темы http://sqlinfo.ru/forum/viewtopic.php?id=162.

Есть товары, есть категории товаров (разделы).
Один товар может находиться в нескольких разделах. Соответственно есть третья табличка, связывающая товары и категории.

Очень хочется выставлять приоритеты товарам (т.е. кто за кем следует). Причем для каждого раздела хочется задавать свои приоритеты. Т.е. в одном разделе товар может идти первым, в другом пятым и т.д.

Реализация, которая приходит в голову, это создать еще одну таблицу с полями id_категории, id_товара, приоритет.

И запрос будет что-то типа
SELECT ... FROM `products` as prod, `prioritets` as prior WHERE .... AND prior.id_категории = номер_категории AND prior.id_товара = prod.id  ORDER by prior.приоритет

Вопрос, насколько это будет тормозить запрос? Нормальная ли это реализация? Стоит ли так делать, или может как-то по-другому?

Неактивен

 

#2 05.10.2007 13:21:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Стоит ли делать приоритеты товарам

Добавьте поле приоритет в существующую таблицу связей товар-категория.
Зачем делать еще одну?

Реализация нормальная smile

Неактивен

 

#3 05.10.2007 17:39:28

izstora
Участник
Зарегистрирован: 26.09.2007
Сообщений: 23

Re: Стоит ли делать приоритеты товарам

Отлично! Спасибо за подсказку!

Неактивен

 

#4 05.10.2007 17:56:55

izstora
Участник
Зарегистрирован: 26.09.2007
Сообщений: 23

Re: Стоит ли делать приоритеты товарам

Только единственное,

вы писали, что лучше делать так

SELECT * FROM product WHERE id IN ( SELECT id FROM products WHERE vozrast=4 ORDER BY X LIMIT Y,Z)

Соответственно выбор айдишников идет первым запросом, в котором неплохо было бы выбрать и приоритеты.

Как быть в этом случае?

Неактивен

 

#5 05.10.2007 18:10:53

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Стоит ли делать приоритеты товарам

IN + LIMIT работать не будут. Делайте объединением.

SELECT ... FROM product JOIN products USING (id) WHERE ... ORDER BY ... LIMIT ...;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson