В настоящее время я работаю над проектом, который вычисляет данные и сохраняет их по идентификатору в базе данных аналитики.Сохранение статистики в течение более длительных периодов времени и времени
Например, количество раз, когда читается новостная статья (и поэтому есть 20 категорий данных, хранящихся как целое число).
Мы храним данные в полях, как следует: INT user_id INT value_type_id INT значение DateTime DateTime
Мы используем 4 таблицы, x_hour, x_day, x_week, x_month Таким образом, мы не должны вычислить данные в течение нескольких тысяч или даже миллионов записей.
Данные должны рассчитываться «на лету» и фильтроваться определенными соединениями. Все это не проблема и работает по назначению и со скоростью, которая является удовлетворительной.
Вопрос, который следует. Мы хотим, чтобы данные отображались в часовом поясе пользователя, который его просматривает, часовой пояс не всегда один и тот же, поскольку он может быть антиированием, например UTC-5 или UTC + 4.
Поскольку мы сохраняем даты в UTC, у нас возникают проблемы с интервалами в дни, недели и месяцы, поскольку если активность хранится за час до полуночи, то большие интервалы будут видеть это как вчера, хотя это может быть в тот же день в этот часовой пояс.
Я читал решения, добавляя 24 столбца для хранения данных для каждого часового пояса, у любого есть другое решение.
Я не уверен, если я получу вашу мысль. Вы говорите, что хотите сообщать о событиях в зависимости от времени, которое они происходят локально? – Mehran
Нет, я храню их по дневному часу недели и месяца, поэтому нам нужно 40 столбцов для часовых поясов, так как все данные за неделю 20 могут отличаться в часовом поясе +12, как в +0. Но это было сделано. много лет назад;) –