Как лучше всего организовать таблицу или алгоритм выборки данных

nibble

Новичок
Как лучше всего организовать таблицу или алгоритм выборки данных

1. Имеется таблица объектов: название, описание и пр. Объекты самые разные, тумбочки, лыжи, книжки, конфеты...
2. Таблица характеристик. Тоже самых разных. Например: рыжий, большой, дорогой, редкий и т.д.
3. И таблица соответствия характеристик с объектами. Просто пары ID объекта - ID характеристики.

Одному объекту может соответствовать несколько характеристик: тумбочка может быть и дорогой, и редкой, и рыжей.
И характеристике соответствует несколько подарков, дорогими бывают и книжки, и лыжи, и конфеты.

И теперь нужно делать запросы типа:
1. Выбрать все объекты, которые соответствуют нескольким определенным характеристикам. Например: выбрать всё рыжее, дорогое и в то же время большое.
2. Узнать, какая характеристика чаще всего присутствует у объектов. Причём чаще всего нужно сначала сделать первый запрос, а потом уже среди них искать наиболее частую характеристику.

БД MySQL. Объектов около 1000, характеристик около 500.

Подскажите, как лучше всего делать подобные запросы? Может, как-то иначе организовывать структуру таблиц?.. Не будет ли лучше, если в таблицу с объектами добавить 500 столбцов (по столбцу типа BOOL для каждой характеристики)?
 
Сверху