Есть таблица характеристик characteristics, скажем:
1 Вес
2 Цвет
3 Размер
Есть таблица подхарактеристик characteristics_sub:
тонна (1), кг(2), грамм(3) для 1
белый (4), серый(5), черный(6), зелёный(7)... для 2
60х40 (8), 30х20 (9), 100х500 (да хоть 985) для 3
Есть таблица характеристик товаров characteristics_staff:
id_товара наименование .... id_characteristics id_characteristics_sub значение
1 Цемент 1 1 120
2 Панель 3 985 1 (типа TRUE, да)
ну и тд и тп
В 1 получается 120 тонн, в 2 получается Панель 100х500
всё делается просто в SQL через JOIN,
нагрузки почти никакой, благодаря кэшированию и ключам в таблице.