Вариантов много, все зависит от того, какие еще фичи завязаны на параметре "размер". Я видел в магазинах и как ваш первый вариант - но тогда нужно при добавлении товара в корзину сравнивать не только id товара, но и размер, чтобы не было замещения. Видел и ваш второй вариант - с одной стороны, он гибкий, можно добавить разные фичи, с другой стороны, немного переусложнен.
Еще можно создать таблицу размеров, и таблицу товар-размер, при этом на карту добавлять товар и запись из таблицы товар-размер, чтобы они были уникальными.