хранение временных данных для корзины покупок - PullRequest
3 голосов
/ 19 ноября 2009

Я делаю корзину для моего сайта.

Какое решение лучше - хранить данные в сеансе или хранить данные в таблице? Если я сохраню это в таблице, как и когда я буду удалять записи в таблице (то есть, когда пользователь не куплен, а в таблице)

Ответы [ 4 ]

2 голосов
/ 19 ноября 2009

В моем конкретном случае я сохраняю информацию в таблице CartOrder . Статус 'в ожидании' . По завершении процесса я вставляю информацию в таблицу «Заказ» и отмечаю CartOrder как выполненный (или удаляю). Для меня CartOrder является намерением покупки, Заказ является покупкой как таковой.

Не имеет значения, если вы не удалите CartOrder, вы можете использовать его позже (посмотрите, как Amazon или другие сайты поддерживают вашу последнюю корзину, даже если вы не завершили покупку). Также было бы неплохо отследить, сколько пользователей заходит на сайт, осматривается, запускает корзину, но не заканчивает покупку. Пользователи любят это.

2 голосов
/ 19 ноября 2009

зависит от того, что вы хотите сделать.

В обычном решении используется $_SESSION, это решение легко внедряется и не повлияет на производительность вашего сайта.

Сеанс базы данных хорош тем, что время ожидания не требуется и оно немного более надежно.

Я бы сказал, если ваши ценники довольно дорогие, лучше проводить сеанс в БД, потому что пользователь обычно тратит больше времени на размышления, когда он тратит> 10 000 долларов.

Для обычных продуктов подойдет решение SESSION.

2 голосов
/ 19 ноября 2009

Дело предпочтения. Оба разумны. DB дает вам возможность анализировать то, что должно было быть куплено или, по крайней мере, поставлено в очередь с точки зрения интереса к вашим клиентам, эти данные часто вполне достоверны, поскольку они свидетельствуют о повышенном интересе к вашим предложениям, и во многих случаях эти данные НЕ удаляются, а просто дата окончания срока действия или хотя бы идентификатор сеанса в качестве атрибута в таблице.

Согласно методу DB, если вы действительно хотите удалить, это простая чистка, которую вы можете запускать ежедневно или еженедельно в cron или другом запланированном задании для удаления всех записей, срок действия которых истек.

1 голос
/ 19 ноября 2009

Получите подсказку от Amazon, сохраните данные в базе данных и никогда не удаляйте их.

Сколько вы получаете от товаров в корзине? Сколько стоит хранение содержимого корзины? Если кто-то покинет свою корзину и через год вернется на ваш сайт, он все равно может захотеть товары в корзине.

...