私はPostgreSQL DBの設計に取り組んでおり、タイムスタンプをどのように保存するのが最善か疑問に思っています。
仮定
異なるタイムゾーンのユーザーは、すべてのCRUD機能にデータベースを使用します。
私は2つのオプションを見ました:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
以下のためにtimestamp
私は、INSERTモーメントの正確な(UTC)のタイムスタンプを表すことになり、文字列を送信します。
以下のためにbigint
私はまったく同じことを格納し、その数形式のでしょう。(タイムゾーンの問題はミリスがサーバーに引き渡される前に処理されるため、UTCでは常にミリスです。)
を格納するbigint
ことの主な利点の1つは、正しい形式のタイムスタンプの受け渡しが単純な数値よりも複雑であるため(Unix Epocからのミリ秒)、格納および取得が容易になることです。
私の質問は、どちらが最も柔軟な設計を可能にし、各アプローチの落とし穴になる可能性があるものです。