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

标签 php mysql

我所说的一个例子类似于 Google 日历。创建新的重复性任务时。

在创建周期性任务"template"(所有单个任务都基于它)之后,您是否创建所有单个任务并将它们存储在数据库中?还是只存储"template"重复发生的事件及其异常?

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

这也会使搜索/排序等操作变得更加容易。

以前有人创造过类似的东西吗?想法?

最佳答案

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

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

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

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

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

关于php - 开发/管理/设计重复性任务/日历的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3992187/

相关文章:

php - 我如何在 foreach 中分解 Group_Concat

php - "Subquery returns more than 1 row"没有子查询 MySQL?

php - 无法创建表

php - PHP中如何按行数获取指定列

php - 如何根据另一个表中的公共(public) id 值选择一个表中的记录?

mysql - INSERT SELECT ON DUPLICATE 不更新

php - 基于变量的表

php - php-在connection_timeout上返回 header

php - Linux 上文件/文件夹名称中的特殊字符;重命名 php 函数不起作用

php - 查询类内的MYSQL