Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Хочу сделать у товара характеристики. В характеристиках будет указано как принадлежность к бренду, так и к размеру весу и т.д. Плодить таблицы не хочу. Механизм должен быть универсальным. Вот описание:
Есть таблица категорий:
category
id name
3 автокресла
Есть таблица товара:
tovar
id id_cat name active
1 3 кресло 1
Есть таблица типов характеристик:
features_names
id name id_cat
9 бренд 3
Есть таблица значений характеристик:
features_values
id id_feat name
11 9 chicco
12 9 peg perego
Есть таблица связи:
features_links
id_tovara features_value features_name
1 11 3
1 12 3
Запрос:
select distinct(features_links.id_tovara), tovar.name from features_links, tovar where features_links.id_features_value = 11 GROUP BY features_links.id_tovara
Так я получаю Creating tmp table и большие проблемы со скоростью. И этот запрос - не предел. В идеале я еще хочу сортировать данные. А еще наглость с мой стороны будет попросить выбрать не один бренд а несколько (вдруг пользователь хочет посмотреть все товары этих двух или трех брендов) а это значит: select distinct(features_links.id_tovara), tovar.name from features_links, tovar where features_links.id_features_value = 11 OR features_links.id_features_value = 12 GROUP BY features_links.id_tovara
Простите, может у меня не правильно изначально построена логика, но я вижу эту связь именно так.
Самый главный вопрос к знатокам: Как уйти от Creating tmp table? И как добиться максимально высокой скорости? Спасибо.
Неактивен
Страниц: 1