【发布时间】:2015-10-10 15:47:47
【问题描述】:
我正在编写一个“此时向我发送消息”应用程序。我以这种方式存储重复信息:
Schedules
----------
days_of_week: [3, 4, 5]
hours_of_day: [8, 13, 22]
time_zone: "Pacific Time (US & Canada)"
显示效果很好,但我需要编写一个频繁的 cron 作业来获取“现在(UTC)”的所有时间表。因此,如果 cron 作业在 UTC 星期一 09:00 运行,我需要获取所有日程安排,其中
- 星期一是 days_of_week (
where days_of_week @> ARRAY[1]) -
hours_of_day是 09:00 UTC。这是因为hours_of_day存储为整数数组,但我们也存储了用户的 time_zone。
因此用户可能会说:“在星期一上午 9 点给我发送一条消息”(我们将其存储为 [9]),但这意味着 他们 时区的上午 9 点。
问题:
- 在给定这些参数的情况下,有什么方法可以查询所有计划?
- 如果没有,是否有更好的方法来构建数据以确保更轻松地通过 Postgres 进行查询?架构很灵活。
提前致谢!
【问题讨论】:
-
您的意思是在第 3 天 8 小时、4-13 小时和 5-22 小时发送消息,还是在第 3-4-5 天的所有 8-13-22 小时发送消息?
标签: postgresql