Лучше ли вести Дни месяца, месяца, года, дня недели и недели года в виде отдельных справочных таблиц или в общей таблице ответов? Цель - разрешить фильтрацию пользовательского контента и аналитику действий всеми различными значениями даты и времени (для пользователей на основе их общего контента будет создана пользовательская отчетность). Я пытаюсь обеспечить точность данных с помощью идентификаторов, а также сообщать о количестве акций и т. Д. По времени и дате для системной отчетности, сравнивая различные группы пользователей. Если мы будем держать в отдельных таблицах, то как насчет времени? Нужна таблица с каждым часом, минутой и секундой?Справочная таблица даты/времени, необходимая для анализа?
ответ
Большинство баз данных поддерживают некоторый тип данных TIMESTAMP, а также функции DAY(), MONTH(), DAYOFWEEK().
Единственной допустимой причиной для отдельных столбцов DAY или HOUR в отдельной таблице является то, что у вас есть прокомпилированные итоговые значения и средние значения для каждого временного интервала.
Даже тогда его стоит того, если вы ожидаете много фильтрации на основе этих значений, так как стоимость построения этих таблиц высока, и для большинства запросов стандартный SQL «GROUP BY ... HAVING ..» будет работать достаточно хорошо.
Похоже, что вас может заинтересовать «STAR SCHEMA» wikipedia - общий метод хранения данных для ускорения запросов - но будьте осторожны, проектирование и построение схемы звезд - это не тривиальное упражнение.
- 1. Справочная таблица GORM для MemSQL
- 2. HTML Справочная таблица CSS
- 3. Справочная таблица Doctrine 2.1
- 4. C++ Сложная справочная таблица
- 5. Справочная таблица: MATLAB
- 6. Помощь, необходимая для анализа результатов теста нагрузки
- 7. Cross справочная таблица Laravel 5
- 8. HTML/CSS Справочная таблица вопроса
- 9. Справочная таблица внутри заполнителя (Powerpoint)
- 10. Основная таблица Информация, необходимая для процесса репликации
- 11. необходимая таблица для Laravel 5 Аутентификация
- 12. Сводная таблица для анализа вопросника
- 13. Версия для сонара 3.6, необходимая для локального анализа
- 14. Справочная таблица через переменную в Entity Framework
- 15. Database Отношения транзакций и Справочная таблица
- 16. Как работает функция COUNTA (справочная таблица google)?
- 17. Справочная таблица соответствия и все подпапки
- 18. Дизайн базы данных - справочная таблица поиска
- 19. Справочная таблица переменных в VLOOKUP vba
- 20. Справочная опорная таблица по названию Excel 2010
- 21. Удаление строк из принужденно Справочная таблица
- 22. Внешняя справочная таблица в подпункте выберите
- 23. Справочная таблица диапазона таблицы сводных таблиц Excel
- 24. Строка с запятыми и справочная таблица?
- 25. Справочная таблица MYSQL из другой таблицы
- 26. Firefox - таблица CSS Справочная информация TR/TD
- 27. Android Expand JNI Local Справочная таблица
- 28. SQL Azure Elastic Scale - справочная таблица
- 29. ли таблица маршрутизации IP, необходимая для хоста для размещения связи
- 30. Простая таблица анализа
Мое единственное беспокойство заключается в следующем: я показываю графики пользователей, например, количество настенных столбов в июне, далее фильтр по количеству сообщений в выходные дни (которые они будут вводить в зависимости от того, какой уик-энд по-разному меняется по всему миру). Затем пользователи могут сравнить выходные дни в выходные и прошлые выходные. Это только пример. С таким бизнес-требованием, что было бы лучшим подходом к хранению дня. Даже время будет фильтруемым, но для использования в системе, чтобы мы могли отслеживать, какое время дня люди говорят, что Великобритания активна, мот с делением статуса и обмена фотографиями и т. Д. ... – kino
Мое понимание тогда я буду требовать создания таблицы фактов вокруг User Activities, то я могу добавлять к нему различные размеры, такие как Time, Location (у которого снова есть фильтры глубины, такие как состояние страны континента, город, окрестности .. люди, которые просматривают обновления и т. Д.), Затем Identity (Age, nationality , секс, ...). – kino
Вы все еще можете сделать все это с помощью «обычных» запросов sql в поле Timestamp/date time. Но в вашем случае я думаю, что вам будет оправданно хранить как минимум год и месяц как единый купон YYMM, день недели и час в отдельных столбцах, которые можно индексировать, чтобы ускорить ваши запросы. Намек на большинстве БД, было бы неплохо иметь индекс «месяц, день, час», индекс «день, месяц, час», а другой - «час, день, месяц». –