Прошу не судить строго, я только учусь, возможно будут ошибки в формулировке вопроса, но суть я постараюсь донести.
Пытаюсь создать интернет-магазин и тут столкнулся с такой проблемой.
Имеется один товар(например футболка) в БД с разными размерами (например S, M, XL).
1) Как правильно разработать структуры БД для этого товара, чтобы в дальнейшем было легче выводить товар на страницу и пользователь мог манипулировать с размерами, т.е выбирать любой размер данного товара:
- сначала я сделал так:

- затем вот так:

но что-то не очень мне эти варианты нравятся. Как на самом деле делают многие интернет-магазины данную структуру, чтобы в дальнейшем всё правильно выводилось? Либо подскажите кто знает как будет правильней.
2) Как правильно выводить товар на страницу? Например как тут(фото):(ссылка:
www.ozon.ru/context/detail/id/31921559/?item=31920956)

У меня при выборе размера и добавления в корзину попадает один размер, но когда я хочу добавить этот же товар только другого размера, то последний товар просто заменяет предыдущий, а мне нужно чтоб было два одинаковых товара в корзине, но с разными размерами.
P.S. Извиняюсь если неграмотно изложил суть проблемы, но кто понял помогите пожалуйста. Или хотя бы подскажите куда двигаться, дальше уже я сам. Спасибо.