Лучший способ подсчитать общее количество просмотров? - PullRequest
1 голос
/ 30 марта 2012

Я занимаюсь разработкой веб-сайта электронной коммерции, который содержит около 2000-3000 продуктов (количество может увеличиться в ближайшем будущем). Поэтому мне нужно подсчитать общее количество просмотров страниц для определенного продукта.

Я знаю, что это возможнопросто сделать это, просто обновив таблицу mysql при каждой загрузке страницы, но это неправильный способ сделать это, потому что кто-то просто снова нажимает кнопку перезагрузки, и количество просмотров страниц увеличивается.

Так что я хочу сделатьэто лучше, так что всего просмотров нет.несколько ближе к уникальному / реальному.

Мне пришла в голову мысль, что я могу сделать это тремя способами: \

1.Использование файлов cookie , поэтому, если я просто сохраняю файлы cookie для каждого продукта, проверьтепротив этого для следующего уникального посещения, тогда это может быть сделано, но я думаю, что это не лучший способ сделать это, потому что если общее количество файлов cookie не вырастет, то это повлияет на производительность моей страницы при каждом запросе страницы.

2. Использование сеанса Я могу использовать сеанс для хранения данных о каждом продукте и личности посетителя, чтобы я мог отслеживать, является ли это уникальным или повторяющимся визитом. Но я думаю, что размер данных сеанса также увеличивается, если пользователь посещает больше& больше продуктов с той же сессии.Так хорошо ли использовать сессию для этой цели?

3.Используйте базу данных Я могу создать таблицу page_views, затем обновить данные подсчета, проверив задержку между последним посещением исопоставляя IP-адрес и идентификатор сеанса.

, поэтому, пожалуйста, предложите мне, какой метод лучше использовать и лучший способ реализовать этот метод.

Я использую PHP (Codeigniter)2.0.1) + Mysql

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Я бы посоветовал вам создать новую таблицу для хранения переменной идентификатора сеанса вместе со временем истечения, скажем, 2 часа.Вы можете создать файл cookie с этим идентификатором на клиентском сервере, чтобы вам не приходилось многократно использовать запросы MySQL.

В моей интрасети я только создал столбец last_visitor_ip в своих веб-обращенияхТаблица, и я храню там последний IP-адрес, чтобы непрерывные обновления не учитывались.:)

1 голос
/ 30 марта 2012

Нет. 3 не очень хорошая идея, потому что часто у многих разных пользователей может быть один и тот же IP-адрес (например, если они из большой организации). Я думаю нет. 1/2 - лучший подход (я отношусь к ним как к одному и тому же решению, поскольку вы обычно реализуете сеанс, создавая файл cookie). Но зачем вам создавать куки для каждой страницы? Просто отслеживайте отдельные просмотры продукта / страницы для каждого cookie / сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...