数据库架构 重复发生的事件

Database Architecture Recurring Events

我正在构建一个基于开放和众包数据的数据库。 数据涉及重复发生的预定事件。一场活动最长 7 天。

用户根据他们的位置和日期时间询问当前事件和下一个事件。 (他们不能要求 2 个月内发生的事件,只能要求当前的事件和下一个)

总有一个独特的事件在特定的时间和地点发生。 (您不能有 0 个事件,也不能有 2 个)

以下是我面临的问题:

您将如何基于这些元素构建数据库?

  1. 使用 RFC 5545 (iCalendar) 规则。将它们存储在您的活动中 table

  2. 使用实体化视图从 RRules 生成实际事件,比如 +-1 个月或 +-1 年

如果您使用 PostgreSQL 作为数据库,则可以使用 pg_rrule 扩展来根据 RRules 计算日期。