Доброе время суток.
Думаю над проектом базы для отражения размера обуви.
Поясню есть несколько метрик размеров - Европа, US, Размеры отдельных производителей.
Тут подробно написано об этом
Задача стоит в том, что бы вывести:
1. Размер производителя - он указывается в товаре ссылкой на (3) таблицу размера
2. Размеры в других метриках
Структура пока получается такой:
1. Category - Таблица категории метрики - обувь, носки
id, title
2. Group - Таблица шапки метрики
id, category_id, title
3. Items - Таблица размера
id, group_id, title (название размера 41,42,43 и тп), size (размер стельки)
SQL запрос для вывода других размеров по шапке из той же категории будет довольно тяжелый.
select
i1.size,
g1.title,
i1.title,
g2.title,
i2.title,
i2.size
from size_items as i1
left join size_groups as g1 on g1.id = i1.size_group_id
left join size_groups as g2 on g2.size_category_id = g1.size_category_id and g2.id <> g1.id
left join size_items as i2 on i2.id = (
select id FROM size_items WHERE size_group_id = g2.id and size >= i1.size and size <= i1.size+7.5 ORDER BY size ASC LIMIT 1
)
where i1.id = 9
Как можно спроектировать базу, что бы получится более лёгкий запрос?