php – 开发/管理/设计重复任务/日历的最佳方式

我所谈论的一个例子与谷歌日历类似.创建新的定期任务时.

在创建定期任务“模板”(所有单个任务所基于的模板)之后,您是否创建了所有单个任务并将它们存储在数据库中?或者你只是存储“模板”反复发生的事件和他们的例外?

如果用户请求“月份”视图,并且您想要显示所有事件/任务,则似乎是从模板实时创建输出,并且包括所有异常将比资源更加密集,如果每个单独的重复任务都是从模板创建并插入到数据库中的.

这将使搜索/排序等更容易.

以前有人创造过这样的东西吗?想法?

最佳答案
将它全部存储在数据库中.

您希望有一个“任务模板”表和一个“任务”表,其中存在一对多关系.

当用户指示他们想要重新发生任务时,创建“任务模板”记录,然后创建与用户指示的一样多的“任务”(不允许用户在将来创建任务太远).每个任务都通过外键链接到任务模板.我们的想法是,SQL在管理这些记录方面比在基于一个模板的代码中尝试完成所有这些更有效.这样,您在排序和过滤数据时可以有更多选项.毕竟,编写SQL查询比编写,测试和维护操作数据的PHP函数更容易.

我会给你的其他一些提示是:

>尝试在“任务模板”记录中获取大量信息.保留模板涵盖的任务数,最后一个任务结束的日期,第一个任务和最后一个任务之间经过的时间等.当你想要排序和过滤时,这个“元数据”可以帮助你节省查询时间任务.
>在Date和FK字段上放置一个索引,这也有助于查询时间.
>我刚刚在工作中构建了两个日历应用程序,这些应用程序很受老板们的欢迎.我使用了“FullCalendar”JQuery插件(http://arshaw.com/fullcalendar/).我使用JQuery AJAX来处理我的大多数事件,它内置了对Month,Day和Week视图的支持.

转载注明原文:php – 开发/管理/设计重复任务/日历的最佳方式 - 代码日志