【问题标题】:Recurring events with custom data on each event具有每个事件的自定义数据的重复事件
【发布时间】:2016-01-29 08:28:42
【问题描述】:

我正在研究如何正确构建重复事件系统,该系统将允许每个重复事件的“自定义”数据。假设我有一个事件,我已经设置为每个星期四重复。然后,我希望让每个活动的用户知道他们是否参加了这个特定的活动;在重复日期邀请用户参加特定活动;在每个重复事件日期等都有一个“帖子墙”。甚至可以说一个重复事件将有不同的结束时间。

到目前为止,我在创建重复事件方面发现的最好的是:Calendar Recurring/Repeating Events - Best Storage Method - 特别是这个答案:https://stackoverflow.com/a/16659802/2118665

但是,在上述所有示例中,每个事件都被存储并在每个日期具有相同的“event_id”。这或多或少不可能存储有关事件的特定信息,例如第三个重复事件。

【问题讨论】:

    标签: php mysql database database-design database-schema


    【解决方案1】:

    示例中的两个表格非常适合填充日历和处理重复事件。

    Events Table
    ID    NAME
    1     Sample Event
    2     Another Event
    
    Events Meta Table
    ID    event_id      meta_key           meta_value     start_time     end_time
    1     1             repeat_start       1299132000     5:00 pm        7:00 pm
    2     1             repeat_interval_1  432000
    

    我在示例中的表格中添加了开始和结束时间。

    您需要另一个表格来处理特定日期的参与者。我会使用 event_id 和 date_time 作为复合键,这样重复使用相同的 event_id 对您来说就不会成为问题,因为这是您关心的问题之一。

    Participants Table
    event_id     date_time               user_id
    1            2015-10-29 00:00:01     1
    1            2015-10-29 00:00:01     2
    1            2015-10-29 00:00:01     3
    

    要覆盖事件的元表默认值,您可以在事件详细信息表中添加一个条目或任何您想要命名的条目,并为特定日期指定开始和结束时间。

    Event Details
    event_id     date_time              start_time     end_time
    1            2015-10-29 00:00:01    5:00 pm        7:30 pm
    

    这应该是一个好的开始,您必须对其进行改进以更具体地满足您的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多