Дак, так и будет. Наверное, я сталкивался в основном с магазинами, где разновидностей либо почти нет, либо они настолько важны, что фактически являются самостоятельными продуктами...
Впрочем, ещё видел примерно такую схему:
items(item_id, name);
item_dimensions(item_dimension_id, color, size, brand_id, ...);
items_on_hand(item_id, item_dimension_id, qty, ...);
Но запросы по ней делать не очень удобно, IMHO.