我正在研究如何正确构建一个重复事件系统,该系统将允许每个重复事件的"自定义"数据。假设我有一个活动,我已经设定每周四重复一次。然后,我希望允许每个活动的用户告诉他们是否参与了这个特定的活动;邀请用户在重复日期参加特定活动;在每个重复发生的事件日期上都有一堵"帖子墙",等等。甚至,说一个的重复发生事件将有不同的结束时间。
到目前为止,我在创建重复事件方面发现的最好的方法是:日历重复/重复事件-最佳存储方法-特别是这个答案:https://stackoverflow.com/a/16659802/2118665
然而,在上述所有示例中,每个事件都被存储,并且在每个日期都具有相同的"event_id"。这使得或多或少不可能存储事件的特定信息,比如三分之一的重复事件。
示例中的两个表将非常适合填充日历和处理重复发生的事件。
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
这应该是一个好的开始,你必须完善它,使其更符合你的需求。