@phpcoder81

В каком виде хранить данные о посещаемости товаров?

Парни, вопрос. Нужно на сайте отображать количество просмотров товаров желательно с блокировкой от накручиваний. Как на авито (сколько всего просмотров)

Таблица MYSQL
CREATE TABLE `statictica` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `date` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `ip` char(32) NOT NULL,
  `product_id` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `ip` (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Моя схема такова
1) Проверяем хэш данные связки пользователя md5( IP ) - product_id
2) Если нет таких значений за последний час то записываем
3) Если есть, то игнорируем.

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

Выходит, мне надо задействовать две таблицы. 1 (выше) с данными посещаемости 2. Делать UPDATE `stat` = `stat` + 1 в основной таблице товаров.

Может все гораздо проще?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
alekciy
@alekciy
Вёбных дел мастер
Пишите сразу md5 хэш в базу. По нему ставим индекс который и используем при поиске. Справиться ли сервер зависит от посещаемости, характеристик самого сервера, количестве данных в базе. Заполните базу фейковыми данными и посмотрите, сразу станет понятно.

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

Войдите, чтобы написать ответ

Похожие вопросы