Правильная организация:
goods
айди, артикул, ... , и прочие данные общие для всех товаров с данным артикулом (например бренд или айди бренда (если бренды хранятся в отдельной таблице); возможно, ссылка на основное изображение).
В общем, здесь описан непосредственно сам продукт, как таковой.
goods_variants
айди_варианта, айди_товара, опции товара, остаток.
Здесь все сочетания возможных опций для товара, с определенным айди. А так же возможная уникальная информация для конкретных параметров (возможно, информация о том, что товар акционный - допустим скидка 50% на супер большие размеры - здесь айди акции или что-то такое).
Например, если опции - это размер и цвет, то таблица в этом случае:
айди, размер, цвет, остаток, и еще что-то уникальное для данного варианта товара (ссылка на изображение, если цвет отличается, к примеру).
Само собой, сочетание полей айди+размер+цвет должно быть уникальным, во избежание дублей.
Если возможных опций для товара слишком много (а возможно даже отсутствие одних опций и присутствие других), то нужно подумать об организации отдельной таблицы опций товаров, но это тема для отдельной дискуссии.