2015-05-12 4 views
2

Мне нужно хранить часовые пояса для пользователей в Postgres 9.3.Ссылка на часовые пояса в postgres

Логическим решением было бы создать таблицу имен и смещений часового пояса, а затем сохранить ссылку FK в моей пользовательской таблице.

Однако postgres уже имеет вид pg_timezone_names, который отображает имена часовых поясов, о которых сообщает Postgres. Казалось бы, имеет смысл просто ссылаться на эти имена, а не на создание моей таблицы одинаковых имен. Тем не менее, pg_timezone_names является представлением и поэтому не может быть ссылкой.

Есть ли системный стол, в котором хранятся эти названия часовых поясов, которые безопасны для ссылки, или это просто плохая идея?

ответ

1

Вместо ссылки FK вы, вероятно, должны просто денормализовать. Сохраните имя строки часового пояса с пользователем, используя IANA time zone identifier, например 'America/Los_Angeles'. Эти идентификаторы: used by Postgres, а также являются взаимозаменяемыми с другими системами.

Имейте в виду, что часовой пояс не может быть представлен исключительно смещением. Подробнее читайте в разделе «Часовой пояс! = Смещение» от the timezone tag wiki.

0

Это хуже, чем лучше - список часовых поясов актуализируется неоднократно - некоторые часовые пояса могут быть удалены, а некоторые - новыми.

+0

Это не ответ. –

Смежные вопросы