Saya sedang mengerjakan desain DB PostgreSQL dan saya bertanya-tanya bagaimana cara terbaik untuk menyimpan cap waktu.
Asumsi
Pengguna di zona waktu yang berbeda akan menggunakan database untuk semua fungsi CRUD.
Saya telah melihat 2 opsi:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
Karena timestamp
saya akan mengirim string yang akan mewakili cap waktu yang tepat (UTC) untuk momen INSERT.
Karena bigint
aku akan menyimpan hal yang sama persis, tetapi dalam format angka. (masalah zona waktu ditangani sebelum millis diserahkan ke server, jadi selalu millis dalam UTC.)
Satu keuntungan utama dengan menyimpan a bigint
adalah bahwa akan lebih mudah untuk menyimpan dan mengambil, karena melewati cap waktu yang diformat dengan benar lebih kompleks daripada angka sederhana (milis sejak Unix Epoc).
Pertanyaan saya adalah mana yang akan memungkinkan untuk desain yang paling fleksibel dan apa yang bisa menjadi jebakan dari setiap pendekatan.