Я настраиваю таблицы Fact и Dim и пытаюсь найти лучший способ установить значения времени. AdventureworksDW использует тайм-ключ (UID) для каждой записи времени в таблице DimTime. Мне интересно, есть ли причина, по которой я не должен просто использовать значение времени, например, 0106090800 (моя детализация почасовая)?


«Интеллектуальные ключи» (в данном случае кодированная дата и номер часа) могут привести к проблемам, когда вы захотите изменить определения в своем измерении. Например, ваши пользователи могут настаивать на переходе с местного времени на всемирное координированное время. Теперь ваш ключ больше не является полезным числом, это старое значение в измерении.
Кроме того, из-за проблемы с переносом в полночь, часть даты вашего интеллектуального ключа может не совпадать с фактической датой изменения времени UTC по сравнению с местным временем.
Чтобы ключ не стал проблемой, вы не можете использовать его для каких-либо вычислений. В этом случае это немного лучше, чем простой GUID или номер с автоинкрементом.
Ключи автоматического увеличения (или GUIDS) работают быстро и просто. Самое главное, они тривиально согласованы по всем измерениям.
Время имеет числовое отображение, но это помогает понять, что это странное совпадение, а не основа для хорошего дизайна.
Первичный ключ должен быть суррогатным, бессмысленным, однако использование ГГГГММДД для ключа измерения даты трудно устоять, а также позволяет легко разбивать таблицу на разделы. Уловка в том, что это все равно следует рассматривать как бессмысленное - тот факт, что это похоже на дату, следует рассматривать как чисто случайное совпадение. Этот ключ никогда не должен быть открыт для бизнес-пользователей.