Ich arbeite an einem PostgreSQL-DB-Design und frage mich, wie ich Zeitstempel am besten speichern kann.
Annahmen
Benutzer in verschiedenen Zeitzonen verwenden die Datenbank für alle CRUD-Funktionen.
Ich habe mir 2 Möglichkeiten angesehen:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
Für timestamp
würde ich eine Zeichenfolge senden, die den genauen (UTC) Zeitstempel für den INSERT Moment darstellen würden.
Denn bigint
ich würde genau das Gleiche speichern, aber in einem Zahlenformat. (Zeitzonenprobleme werden behandelt, bevor Millis an den Server übergeben wird, also immer Millis in UTC.)
Ein Hauptvorteil beim Speichern von a bigint
könnte sein, dass es einfacher zu speichern und abzurufen ist, da die Übergabe eines korrekt formatierten Zeitstempels komplexer ist als eine einfache Zahl (Millis seit Unix Epoc).
Meine Frage ist, welches das flexibelste Design zulässt und was die Fallstricke jedes Ansatzes sein könnten.