Kami mulai merancang blok bangunan data mart / gudang dan kami harus dapat mendukung semua zona waktu (klien kami berasal dari seluruh dunia). Dari membaca diskusi online (dan dalam buku), solusi umum tampaknya memiliki dimensi tanggal dan waktu yang terpisah serta cap waktu di tabel fakta.
Namun, pertanyaan saya mengalami kesulitan menjawab adalah apa gunanya dimensi tanggal dan waktu untuk saya mempertimbangkan persyaratan zona waktu dinamis saya? Dimensi waktu sedikit lebih masuk akal tetapi saya mengalami kesulitan dengan dimensi tanggal. Pendekatan desain umum untuk dimensi tanggal biasanya mencakup properti seperti nama hari, hari minggu, nama bulan, dll. Masalah yang saya alami dengan semua itu adalah bahwa pukul 11:00 pada hari Selasa, 31 Desember 2013 di UTC adalah hari Rabu , 1 Januari 2014 di semua zona waktu setelah UTC + 2.
Jadi jika saya harus melakukan semua konversi zona waktu ini pada setiap kueri (dan laporan) lalu apa gunanya memiliki dan menyimpan properti ini yang mungkin tidak akan pernah saya gunakan (sepertinya)? Beberapa orang menyarankan memiliki baris fakta untuk setiap zona waktu tetapi itu tampak konyol bagi saya. Kita harus dapat menyimpan jutaan catatan setiap bulan.
Yang lain menyarankan memiliki tabel jembatan zona waktu yang walaupun masuk akal, tetapi juga tampaknya lebih rumit dan tambahan untuk mencapai sesuatu yang aplikasi dan laporan klien saya harus dapat dengan mudah mengetahui dari suatu tanggal (pelaporan akan terutama berbasis web di mana ada segudang perpustakaan untuk membantu dalam mengkonversi, menampilkan dan memformat tanggal).
Satu-satunya hal yang dapat saya pikirkan adalah kemudahan dan kemungkinan kinerja pengelompokan berdasarkan tanggal dan jam, tetapi seberapa buruk suatu praktik dikelompokkan berdasarkan datepart (kami menggunakan MS SQL tetapi kami akan meminta jutaan baris) atau harus kami pertimbangkan hanya dimensi tanggal dan waktu yang sangat sederhana dengan angka tidak lebih dari jam, hari, bulan dan tahun untuk sebagian besar karena sebagian besar literal seperti Senin tidak akan berarti banyak ketika zona waktu ikut bermain?