Je travaille sur une conception de base de données PostgreSQL et je me demande comment stocker au mieux les horodatages.
Hypothèses
Les utilisateurs de différents fuseaux horaires utiliseront la base de données pour toutes les fonctions CRUD.
J'ai regardé 2 options:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
Car timestamp
j'enverrais une chaîne qui représenterait l'horodatage (UTC) exact pour le moment INSERT.
Car bigint
je stockerais exactement la même chose, mais dans un format numérique. (les problèmes de fuseau horaire sont traités avant la remise des millis au serveur, donc toujours des millis en UTC.)
Un des principaux avantages du stockage d'un bigint
pourrait être qu'il serait plus facile de le stocker et de le récupérer, car le passage d'un horodatage correctement formaté est plus complexe qu'un simple nombre (millis depuis Unix Epoc).
Ma question est de savoir laquelle permettrait la conception la plus flexible et quels pourraient être les pièges de chaque approche.