Я создаю сайт с созданным пользователем контентом. На домашней странице я хочу показать список всех созданных элементов, и я хочу, чтобы их сортировать по счетчику. Это звучит просто, но я хочу несколько счетчиков. Я хочу знать, какой из них был самым посещаемым в последний день, на прошлой неделе или в последние месяцы или в целом.Ежедневный, еженедельный и месячный счетчик просмотров страниц
Моя первая идея состояла в том, чтобы создать 4 столбца счетчика в DB-Table элемента. Один для каждого из ежедневных, еженедельных, ежемесячных и общих и создания задания cron, который очищает ежедневный счетчик каждые 24 часа, еженедельный счетчик каждые 7 дней и так далее.
Но моя проблема заключается в том, что произойдет, если я хочу знать, какой из них наиболее просматривался в течение недели, сразу после того, как еженедельный счетчик очистился?
Что мне нужно - это эффективный способ создания непрерывного счетчика, который уменьшился для каждого слишком старого просмотра страницы и увеличился для каждого нового просмотра страницы.
Прямо сейчас я думаю о решении с redis server, но у меня пока нет решения.
Я просто ищу общую идею здесь, но FYI Я разрабатываю это приложение в Ruby on Rails.
Я тоже об этом подумал, но это означает, что мне нужен дополнительный стол с большим объемом доступа для записи, именно этого я и стараюсь избегать. – jigfox
Вы всегда можете выполнять пакетную обработку или запись в эту таблицу вызывает функцию отслеживания дорожек, которая вставляется только в пакет каждые x мин. Вы отказываетесь от результатов в реальном времени, но это может быть хорошо. Если у вас есть таблица попаданий, в которую вы вставляете пакет, вы можете создавать триггеры, которые заполняют таблицу отчетов подсчетов по мере необходимости. –
Я никогда не видел этого. Я использую MySQL DB, есть ли у вас какие-либо ссылки на сайт с примером для пакетной записи в БД? – jigfox