Как управлять базой данных просмотров страниц
-
21-09-2019 - |
Вопрос
Меня интересует отслеживание просмотров страниц моими пользователями на моем сайте.Поскольку трафик растет очень быстро, меня беспокоят роботы и т. д., а также я хочу иметь возможность использовать отслеживаемые данные в реальном времени, чтобы изменить взаимодействие с пользователем (поэтому, хотя я и использую аналитику Google, она не служит этой цели). .
Какой самый эффективный способ хранения моей информации?Вот моя текущая теория, пожалуйста, покритикуйте и/или предложите больше идей :)
Стратегия: Соберите IP-адрес, URL-адрес страницы, браузер/версию, метку времени, ссылки от клиента при загрузке и вставьте строку в MySQL.Определите некоторый интервал в зависимости от времени или производительности для «архивирования» таблицы и либо удаления строк, либо создания новой через cron.
Это стабильно?
Решение
Звучит разумно.Вам следует создать эту таблицу MYIASM и не иметь никаких индексов, если вы хотите, чтобы вставки были максимально быстрыми.
Другие советы
Я не совсем уверен, но как насчет таблицы пользователей (возможно, присвоения идентификатора пользователя с помощью файлов cookie или сеанса), таблицы ваших страниц (это может быть практично или нет, в зависимости от того, как они генерируются), и таблицу отслеживания, чтобы показать, какие страницы (через какой-то уникальный идентификатор страницы) просматривает каждый идентификатор пользователя?
Pages:
page_id | page
01 | homepage
02 | site map
03 | about us
users
user_id | user_ip_or_cookie_identifier
01 | 127.0.0.1
02 | 192.168.0.2
tracking
user_id | page_id
01 | 01
01 | 03
02 | 01
01 | 02
(и т. д...)
Затем используйте простой запрос MySQL (или любой другой базы данных, которую вы используете), чтобы узнать, какие страницы были просмотрены каким пользователем.
Основные недостатки заключаются в том, что пользователи будут иметь разные идентификаторы на работе и дома (если вы не войдете в систему), а также несколько пользователей на каждом IP-адресе и, возможно, в каждом файле cookie/сеансе (в зависимости от того, насколько пользователи открыты для совместного использования своих рабочих станций). /шт).