В идеале вы хотите хранить информацию о корзине либо в файлах cookie, либо в сеансах.Если вы хотите сохранить каждую корзину покупок в своей БД, вы можете использовать следующую реализацию.
По сути, одна корзина покупок может иметь несколько товаров, причем каждый товар имеет цену и количество, связанные с ним.
Для хранения корзин на пользователя используйте следующую схему:
Корзины
cartID (первичный ключ) sessionID (уникальный идентификатор, идентифицирующий сеанс пользователя, в котором была создана корзина) куплено (логическое ИСТИНА / ЛОЖЬ, чтобы сохранить, была ли корзина куплена или выброшена)
Корзина покупок
id (первичный ключ) cartID (уникальный идентификатор, идентифицирующий корзину пользователя) userID : (используйте, только если вы знаете, что пользователь всегда будет входить в систему при добавлении товаров в корзину) itemID : Уникальный идентификатор товара в корзине. itemQuantity : Количество заказанного товара. itemPrice : (необязательно - используйте, только если цена товара настраивается, или извлекайте ее из таблицы предметов)
С помощью приведенной выше схемы, если пользователь добавляет 2 товара в корзину, позволяетскажем
- элемент X (количество = 2 шт., itemID = 1001) и
- элемент Y (количество = 1 шт., itemID = 1002).
Ваши записи в таблице будут выглядеть так:
id : 1 sessionID : abc1 itemID : 1001 itemQuantity : 2
id : 2 sessionID : abc1 itemID : 1002 itemQuantity : 1
Теперь, когда вы хотите получить заказ для корзины покупок - просто запросите информацию на основе ID сессии, который использовался, когда пользователь создавал корзину.