Вопрос

Я работаю над хранилищем данных, которое, в конце концов, потребует от меня создания отчетов в рабочее время. В настоящее время мое измерение времени гранулировано до часа. Мне интересно, стоит ли мне изменять измерение времени, чтобы включить битовое поле для & Quot; рабочий час & Quot; или я должен создать какой-то рассчитанный показатель для него в конце анализа? Какие-нибудь примеры были бы супер великолепны?

Это было полезно?

Решение

Используйте бит (или даже другой столбец), чтобы указать, является ли час рабочим часом в момент его сохранения. В противном случае, если вы измените рабочее время, вы не сможете воспроизводить исторические отчеты.

Другие советы

Все ли ваши данные о продажах находятся в одном часовом поясе? Например, вы отслеживаете продажи торговых точек в разных часовых поясах или конечных пользователей в разных часовых поясах? Если это так, вы можете создать это битовое поле для & Quot; рабочее время & Quot; в таблице фактов продаж, потому что будет довольно сложно рассчитать это на лету для пользователей и торговых точек в разных часовых поясах.

Кроме того, вы хотите рассчитать это только один раз - когда продажа импортируется в хранилище данных - потому что эти данные вряд ли будут меняться очень часто. Это не так, как вы собираетесь сказать, & "Раньше эта продажа была в рабочее время, но это уже не так. & Quot;

рабочее время - это бизнес-правила, поэтому они могут измениться в будущем

представляет рабочие часы как базовое время и продолжительность, например, StartTime 0900, продолжительность 9,5 часа, таким образом вы можете легко изменить интервал, выполнить сценарии «что, если», основываясь на разных рабочих часах, и рабочие часы могут пересекать строки даты без усложнения запросов

конечно, все даты и времени должны быть по Гринвичу (UTC), никогда по местному времени, чтобы избежать сложностей с переходом на летнее время

РЕДАКТИРОВАТЬ: я думаю, что неправильно понял вопрос, ваши данные уже детализированы до часа ... Нет, я думаю, что мой ответ остается в силе, но с добавлением даты начала и окончания вступления в силу для рабочих часов. Это позволило бы изменить гранулярность в будущем при сохранении истории

Я не уверен, поможет ли это, но я бы использовал UCT для хранения всех времен, а затем имел бы время начала и окончания, чтобы указать рабочие часы. После настройки это будет простая If (SpecificHour >= BusinessStartingHour) And (SpecificHour <= BusinessEndingHour) Then ... операция.

Если вы используете Microsoft PerformancePoint 2007, вы можете играть и тестировать с различными опциями. Вы можете изменять свои измерения и выводить результаты в виде диаграмм, сводных таблиц, других инструментов отчетности и т. д.

http://office.microsoft.com/en-us/performancepoint /FX101680481033.aspx

Может ли & работать? " изменение с течением времени? Наверное, я спрашиваю, нужно ли привязывать каждую строку к флагу рабочего часа, или достаточно того, что сама таблица отчетов (или некоторая справочная) решает, была ли эта транзакция совершена в течение рабочего часа или нет.

При прочих равных, я бы, вероятно, сделал отчет за вас, вместо того, чтобы отмечать строки, но если рабочие часы изменчивы с течением времени, вам нужно пометить строки, чтобы убедиться, что ваши исторические данные остаются правильными.

Я думаю, что это оценочный вызов, который зависит от тестирования производительности, использования системы и т. д. Лично я бы, вероятно, создал бы индексированное поле для хранения флага в интересах работы с логикой, чтобы определить, что является и не рабочий час авансом (то есть, когда данные загружены). Если все сделано правильно (и опять же, в зависимости от конкретного использования), я думаю, вы также сможете получить прирост производительности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top