Стандартный подход:
1 Таблица - товар и его стандартные характеристики
2 Таблица - дополнительные характеристики (цвета, размеры, габариты, наличие/остатки и прочее)
3 Таблица - связи между первыми 2мя таблицами
Выборка из этих таблиц с помощью LEFT JOIN / INNER JOIN, например.
Бывает еще промежуточная таблица "типы связей", тогда в таблице 2 хранятся только сами опции и внешний ключ на поле ID из таблицы "типы связей". То есть, Т1 - товары, Т2 - типы связей (цвет, размер, вес, наличие и тд), Т3 - характеристики (все варианты цветов, размеров и тд), Т4 - связи. Такие схемы встречаются, но, ИМХО, редко имеют смысл. Стандартной модели обычно достаточно.