Корзина, сеанс или БД?

Я начинаю разрабатывать мультисервисную корзину в php, где каждый пользователь будет иметь корзину покупок в разных магазинах. Я хотел бы знать, что является лучшим способом сохранить данные корзины покупок, такие как имя продукта, идентификатор, цена и т.д., Когда пользователь нажимает "Добавить в корзину". Я думаю, мы можем сохранить его двумя способами: a) Сессия b) Таблица Db.

Какой лучший способ сохранить всю эту информацию? Я хочу сделать его настолько безопасным, насколько это возможно.

Просьба предложить.

Спасибо

Ответ 1

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

Даже если вам нужна БД, вы можете сохранить некоторые записи и использовать клиентскую часть для хранения временных данных и, наконец, переместить ее в свою БД с каким-то механизмом синхронизации.

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

Ответ 2

Сессия или БД не являются эксклюзивным выбором - сеанс также может храниться в базе данных. В некотором роде вы должны получить корзину для пользователя. Во всех случаях у вас будет сеанс для этого. Вопрос в том, следует ли сохранять тележку между сеансами (для зарегистрированных пользователей). В этом случае вам не следует связывать корзину с сеансом. Все усложняется, если вы хотите сохранить корзину для зарегистрированных пользователей, разрешить незарегистрированным иметь тележку, а также объединить сеансовую тележку и сохраненную корзину в случае входа пользователя в систему.

Итак, чтобы ответить на ваш вопрос, вы должны просто очистить свои требования. Что означает "корзина покупок в разных магазинах"? Будет ли сохранена корзина между входами (например, пользователь возвращается через неделю)?

Что касается безопасности, обычно предпочитают сохранять сеанс в базе данных, так как вы можете иметь дополнительную защиту, у кого есть доступ к данным, особенно на общем хостинге.

Ответ 3

С реализацией DataBase у вас есть гранулярный контроль и лучшее сохранение.

Используйте сеанс, чтобы узнать зарегистрированного пользователя между страницами, но DataBase для хранения важных данных.