在postgres中引用时区

时间:2015-05-12 15:35:36

标签: postgresql timezone

我需要在Postgres 9.3中为用户存储时区。

逻辑解决方案是创建一个时区名称和偏移表,然后在我的用户表中存储FK引用。

但是,postgres已经有了一个视图pg_timezone_names,它显示了Postgres知道的时区名称。仅仅引用这些名称似乎是有意义的,而不是创建我自己的完全相同名称的表。但是,pg_timezone_names是一个视图,因此无法引用。

是否有一个系统表保存这些时区名称是可以安全引用的,或者这样做是不是一个坏主意?

2 个答案:

答案 0 :(得分:2)

而不是FK引用,你应该只是反规范化。使用IANA time zone identifier(例如'America/Los_Angeles')向用户存储时区的字符串名称。这些ID为used by Postgres,也可与其他系统互换。

请记住,时区不能仅由偏移量表示。更多信息请参阅"时区!=偏移" the timezone tag wiki

答案 1 :(得分:0)

情况比情况更糟糕 - 时区列表反复实现 - 某些时区可以删除,有些时区可能是新的。