Подскажите, как лучше реализовать каталог в данной ситуации.
Дано: старый фреймворк с контроллерами и smarty-шаблонами, множество товаров (более 5000) различного типа с разными характеристиками. Все характеристики забиты вручную в html-таблице. (да, html-таблица хранится в базе в поле "описание").
Характеристики вытащил в массив, теперь хотелось бы услышать совета от кого-то более опытного - как это всё лучше хранить?
В будущем хочу добавить фильтры по характеристикам, и сравнение товаров. Поэтому характеристики не хочу загонять в отдельную таблицу со связью many-to-many или json-поле.
Пока придумал такой вариант:
1. создание в таблице с товарами дополнительных столбцов (столько же, сколько максимально характеристик у товара, ~30).
2. после этого - создание конфиг-файла с типами товаров, перечислением и описанием столбцов для каждого типа товара.
т.е.:
камера => [
поля => [
поле_1 => [ // столбец в таблице бд называется также
название => 'матрица'
]
]
],
блок питания => [
поля => [
поле_1 => [
назввание => 'ампераж'
]
]
]
Таким образом, можно будет быстро получить информацию о любом товаре/группе товаров, или сформировать выборку по любым критериям.
Но может есть способ получше?)