Показать сообщение отдельно
  #3 (permalink)  
Старый 15.08.2016, 04:23
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от art201214
После пройтись по объектам и сравнить свойства только созданного с имеющимися
Товары, это учет, а значит каждый товар имеет одно уникальное свойство, по которому можно определить тот или иной товар. Таким свойством может служить артикул товара. Храня же товары в базе, поступают еще проще - первичный ключ таблицы описывающей товары, это поле с авто инкрементом, которое автоматически генерирует уникальный идентификатор товара.

Храня товары в корзине под их идентификаторами, достаточно проверить наличие ID в первичных ключах (свойствах объекта). Шерстить все свойства товаров при этом не требуется. К тому же, большой ошибкой будет хранить товары в базе по принципу - каждая запись, это товар А, но с различными свойствами. В таблице хранят основные характеристики товара, а свойства которые могут варьироваться хранят в связанных таблицах, ссылки на которые тоже идентификаторы свойств. То есть корзина по большому счету, это набор чисел.

А самое главное, это то, что хранить корзину да еще и в локальном хранилище нет никакой необходимости. Добавление товара в корзину должно производиться только с одобрения сервера. А если корзина хранится у клиента и бог знает сколько времени, то первое же к ней обращение предполагает проверку - есть ли еще ее товары в продаже.
Ответить с цитированием