Измерения даты и времени суток - это (очень необычный) случай в хранилище данных, когда выгоден суррогатный ключ с «магическими» значениями.Первичные ключи можно сделать в целых числах измерения даты со значениями, такими как 20110516, и в измерениях времени дня 1 - 1440 или 1 - 2400.
Я предлагаю вычислять соответствующие значения в записях фактов и добавлять полядля них, скажем, CALENDAR_ID, TIME_OF_DAY_ID.В зависимости от размера ваших данных, вы, вероятно, выиграете от индексации CALENDAR_ID и, возможно, даже от ее разделения.Если вы уверены в качестве своих данных, вы можете пропустить ограничения внешнего ключа для этих полей, чтобы повысить производительность во время загрузки.