我需要在Postgres 9.3中为用户存储时区。
逻辑解决方案将是创建一个时区名称和偏移的表,然后在我的用户表中存储FK参考。
但是,Postgres已经有一个视图pg_timezone_names显示了Postgres知道的时区名称。仅引用这些名称,而不是创建自己的完全相同的名称表,这似乎是有意义的。但是,pg_timezone_names是一个视图,因此无法引用。
是否有一个系统表拿着这些时区名称可以安全参考,或者这样做只是一个坏主意?
而不是fk参考,您可能应该只是不合规。使用IANA时区标识符(例如'America/Los_Angeles'
)将时区的字符串名称与用户一起存储。这些ID由Postgres使用,并且也可以与其他系统互换。
请记住,时区不能仅由偏移来表示。在时区标签Wiki的"时区!=偏移"部分中阅读更多信息。
它比更好的差 - 反复实现的时区列表 - 某些时区可以删除,有些是新的。