2009-09-10 5 views
1

Я пытаюсь создать простую корзину покупок, я прочитал об их контроле и вижу, что есть 3 способа контролировать их. один из файлов cookie, другой - сеанс, а последний - модель базы данных. Мне интересно, какой из них лучше? некоторые сказали, что метод базы данных лучше, но и сложнее. Я также ищу учебник по модели базы данных ...Лучший способ контролировать тележки

ответ

3

Что вы действительно говорите, это сеансы. Вероятно, вы сохраните некоторые данные своей корзины в сеансе, пока пользователь проверяет, поэтому именно здесь возникла ваша путаница.

Ответ на ваш вопрос зависит от того, какой тип и сколько данных вы храните в сеансе. Cookies имеют ограничения по размеру, и вы не должны хранить конфиденциальные пользовательские данные в них незашифрованные. Некоторые скажут, что вы не должны даже закладывать такие вещи, как номера кредитных карт. Недостатком сессий, поддерживаемых DB, вы должны очищать их так часто. Это легко сделать с помощью задачи rake, выполняемой с помощью задания cron, но вам все равно нужно подумать. Поддерживаемые файлом сеансы часто не используются, и вы можете просто ускорить работу с чем-то быстро. Я бы не работал с файловыми сессиями в процессе производства.

Authlogic - это драгоценный камень, который можно использовать в проекте Rails. Он предоставляет модель UserSession, которую вы можете унаследовать. Он имеет множество функций и полностью настраивается.

+0

+1 для аутлогистики и в противном случае хороший ответ –

2

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