我想在应用程序的日期/时间显示上显示重复事件。此日期时间显示可以采用日历的形式,但也可以只是即将发生的事件的列表。
处理跟踪这个可以重复的事件的最佳方法是什么?
例如:事件是否应该在数据库中存储一次并在显示代码中投影/重复多次?是否应该多次存储事件然后才渲染?
我以前做过类似的事情,我的架构基于 SQL Server 的 sysschedules 表。
http://technet.microsoft.com/en-us/library/ms178644.aspx
上面链接的模式将允许您存储作业(事件)的计划。然后,您可以根据计划计算事件发生的日期。这可能是一个冗长的计算,所以我会尝试在某处缓存该结果。
我认为这取决于事件的类型。是不是就像圣诞节一样,一旦它来临时,你真的对它不感兴趣,直到下一次发生?还是像“确保我每个月都给我妈妈打电话”这样的任务,如果它发生并且你错过了它,你不希望它消失吗?
我最近实现后者的一种方法是创建一个包含 next_occurrence(日期)、reoccurence_period(每周、每月、每年等)列的记录。这样当下一次出现时它就会出现在列表中。一旦它通过,列表项将有一个回收图标,一旦按下它将更新记录到下一个未来发生。
同样,我不确定这是否适用于您的情况,但对我来说效果很好。