Но вообще-то лучшие практики для интернет-магазина на сайте - это CMS, в которой вся эта логика уже проработана.
Тема куда глубже и сложнее, чем кажется на первый взгляд.
в обобщенной таблице продуктов - общие характеристики слонов (категория, бренд, что там у вас еще).
В разделенной по вариантам таблице товаров - ключ на продукт и подробности товара (привязка свойств из отдельной таблицы и общие данные конкретного товара типа себестоимости, веса, размеров...).
В окончательной таблице торговых предложений - набор (возможно, нескольких, в отдельной таблице) товаров и данные, которые будут на витрине (картинка, цена, габариты окончательной упаковки...)
Можете привести из своей практике примеры в формате: одна и та же задача > разные модели > кол-во итераций > итоговая стоимость? Есть такой опыт?