Sto lavorando su un progetto DB PostgreSQL e mi chiedo come archiviare i timestamp nel modo migliore.
ipotesi
Gli utenti con fusi orari diversi useranno il database per tutte le funzioni CRUD.
Ho esaminato 2 opzioni:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
Per timestamp
vorrei inviare una stringa che rappresentasse l'esatta data e ora (UTC) per il momento INSERT.
Per bigint
avrei memorizzare la stessa cosa, ma in un formato numerico. (i problemi di fuso orario vengono gestiti prima che i millisecondi vengano consegnati al server, quindi sempre i millis in UTC.)
Un vantaggio principale con la memorizzazione di a bigint
potrebbe essere che sarebbe più facile da memorizzare e recuperare, poiché passare un timestamp correttamente formattato è più complesso di un semplice numero (millisecondi da Unix Epoc).
La mia domanda è quale si consentirebbe il design più flessibile e quali potrebbero essere le insidie di ogni approccio.