Bir PostgreSQL DB tasarımı üzerinde çalışıyorum ve en iyi nasıl zaman damgalarını depolamak merak ediyorum.
Varsayımlar
Farklı saat dilimlerindeki kullanıcılar veritabanını tüm CRUD işlevleri için kullanır.
2 seçeneğe baktım:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
Çünkü timestamp
INSERT anı için tam (UTC) zaman damgasını temsil eden bir dize gönderirim.
Çünkü bigint
aynı şeyi saklıyorum, ama sayı formatında. (zaman dilimi sorunları, milisler sunucuya teslim edilmeden önce ele alındığından, her zaman UTC olarak milis olur.)
bigint
A'yı saklamanın temel avantajlarından biri , doğru biçimlendirilmiş bir zaman damgasının geçirilmesinin basit bir sayıdan (Unix Epoc'tan beri milis) daha karmaşık olması nedeniyle depolamanın ve geri getirmenin daha kolay olacağı olabilir.
Benim sorum, hangisinin en esnek tasarıma izin vereceği ve her yaklaşımın tuzakları ne olabilir.