qawsed1
2.04.2013 - 13:22
Привет!
Есть сайт, на нём порядка 100 страниц, каждая посвящена отдельной книге.
Нужно сделать счётчик посещаемости этих страниц, чтобы и самому видеть какая страница популярнее и на сайт выводить "10 самый посещаемых", "10 самых посещаемых за сегодня" ну и т.д.
Как лучше реализовать такую идею?
У меня первым делом возникла самая примитивная идея: добавить в БД в таблицу числовое поле count и каждый раз при загружке страниц плюсовать туда +1. Но тогда невозможно реализовать "10 самых посещаемых за сегодня".
Вторая мысля была: создать отдельную таблицу count с полями id_book и time. тогда каждая загрузка страницы будет добавлять в эту таблицу новую строчку. Тогда вроде можно посчитать и общее кол-во строк (посещений) для каждой книги и за сегодня сделать если отсортировать через TIMESTAMP. Но, тогда каждый день эта таблица будет пополняться тысячами новых строк ежедневно! Боясь так БД разростётся до гигабайт.
Подскажите как лучше реализовать, чтобы было просто, надёжно и экономично для БД?
dron4ik
2.04.2013 - 13:29
Гугл аналитика или яндекс метрика даст всю туже статистику, и + много другого... не зря же их используют...
_____________
Ex3m.com.ua — Активный образ жизни
qawsed1
2.04.2013 - 13:31
Счётчик яндекса стоит. Но мне нужно именно для того, чтобы выводить через php и sql-запросы на страницы сайта информацию о том, какая из страниц популярнее. 10 новинок, 10 самых читаемых, 10 самых читаемых сегондя
dron4ik
2.04.2013 - 13:38
Тогда второй вариант... не такая уж таблица и большая будет... та и чистить раз в неделю - месяц не проблема думаю...
_____________
Ex3m.com.ua — Активный образ жизни
qawsed1
2.04.2013 - 14:30
Не хотелось бы конечно чистить))) А то как обычно то забудешь, то времени нет, то лень, то ещё что-нибудь)))
Michael
2.04.2013 - 14:42
Цитата (qawsed1) |
У меня первым делом возникла самая примитивная идея: добавить в БД в таблицу числовое поле count и каждый раз при загружке страниц плюсовать туда +1. Но тогда невозможно реализовать "10 самых посещаемых за сегодня". |
"10 самых посещаемых за сегодня" можешь в отдельной табличке также хранить (url, счетчик, timestamp).
Перед занесением просто проверять текущее время с min из timestamp в этой таблице и если не этот день, то очищать таблицу.
_____________
There never was a struggle in the soul of a good man that was not hard
qawsed1
2.04.2013 - 21:02
Так что получается, это единственные 2 варианта?
dron4ik
3.04.2013 - 12:15
Цитата |
Так что получается, это единственные 2 варианта? |
нет
В принципе по хорошему нужно использовать второй вариант, но если места на диске жалко, то можно при вставке группировать по дням (INSERT ... ON DUPLICATE KEY естетственно уникальный ключ на оба поля count и date (именно date, а не datetime)), в итоге в год у вас будет добавляться максимум 36500 строк
_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.