Мой сайт регистрирует клики в базе данных каждый раз, когда пользователь просматривает статью. Эта таблица автоматически очищается каждые 3 дня. Мы используем данные для определения наиболее просматриваемых страниц за этот трехдневный период.
Я также хотел бы использовать эти данные в маркетинговых целях, например, чтобы определить, каким пользователям нравится какие разделы сайта.
Я написал скрипт на php, который делает следующее:
получить идентификаторы пользователя, вошедшего в систему, который просматривал статью за последние 3 дня
для каждого пользователя, я запрашиваю счет, сколько раз они просматривали статьи в каждом разделе, например, Бобби просмотрел 10 страниц в Food & Drink и 6 страниц в Sport. Я попытался объединить этот шаг и предыдущий, но получил странные результаты для итогов.
Это дает мне хороший массив в этой форме:
[Бобби Джонс] => Массив
(
[Film] => 10
[Домашняя страница] => 1
[Еда и напитки] => 2
[Здоровье и красота] => 1
[Подарки и гаджеты] => 3
)
Что я хочу получить из этих данных, так это в конечном итоге иметь таблицу, которая регистрирует данные в массиве выше, а затем, когда я выполняю свои запросы, увеличивает его.
К сожалению, это добавляет много накладных расходов. Когда у меня есть массивы, подобные приведенному выше, мне нужно выполнить другой запрос, чтобы проверить, существует ли уже эта комбинация пользователя и категории в базе данных, и если это так, я должен увеличить ее на значения этого дня. Например, если Бобби просмотрел 10 страниц фильма на прошлой неделе, а на этой неделе просмотрел 6, мне нужно ОБНОВИТЬ таблицу. Если он никогда раньше не просматривал страницу с продуктами, мне нужно вместо этого вставить.
Этот запрос возвращает около 400 пользователей, которые взаимодействовали с сайтом за последние 3 дня. Это означает, что для каждого I-пользователя мне нужно выполнить 1 запрос, чтобы получить итоги просмотра, 1 запрос, чтобы узнать, просматривали ли они эту категорию ранее, и другой запрос на обновление / вставку, в зависимости от того, просматривали ли они его или не. Вы можете видеть, насколько это неэффективно.
Кто-нибудь может предложить лучший способ сделать это? Моя конечная цель - получить таблицу, показывающую, как часто мои пользователи просматривают мои категории, поэтому я могу сказать: «показать мне всех пользователей, которым нравится еда и напитки» и т. Д.
Спасибо,
Matt