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

And*_*dre 6 php mysql

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

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

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

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

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

tpo*_*pow 3

将其全部存储在数据库中。

您希望有一个“任务模板”表和一个存在一对多关系的“任务”表。

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

我想给你的其他一些建议是:

  • 尝试在“任务模板”记录中获取大量信息。保留模板涵盖的任务数量、最后一个任务结束的日期、第一个任务和最后一个任务之间经过的时间等。当您希望排序和过滤时,此“元数据”可以帮助您节省查询时间任务。
  • 在 Date 和 FK 字段上放置索引,这也将有助于查询时间。
  • 我刚刚在工作中构建了两个日历应用程序,受到老板的好评。我使用了“FullCalendar”JQuery 插件(http://arshaw.com/fullcalendar/)。我使用 JQuery AJAX 来处理大部分事件,它内置了对月、日和周视图的支持。