Я работаю над дизайном БД PostgreSQL и мне интересно, как лучше хранить временные метки.
Предположения
Пользователи в разных часовых поясах будут использовать базу данных для всех функций CRUD.
Я посмотрел на 2 варианта:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')bigint NOT NULL DEFAULT
Поскольку timestampя послал бы строку, которая представит точную (UTC) метку времени для момента ВСТАВКИ.
Ибо bigintя бы сохранил то же самое, но в числовом формате. (Проблемы с часовым поясом обрабатываются до того, как миллис будет передан на сервер, поэтому всегда миллис в UTC.)
Одним из основных преимуществ хранения a bigintможет быть то, что его будет проще хранить и извлекать, поскольку передача правильно отформатированной временной метки является более сложной, чем простое число (миллис со времен Unix Epoc).
Мой вопрос заключается в том, какой из них позволил бы создать наиболее гибкую конструкцию и какие могут быть подводные камни каждого подхода.