我正在讨论的一个例子类似于Google Calendar。当创建新的周期性任务时。
创建周期性任务“模板”后-所有单个任务都基于这些模板,是否创建所有单个任务并将其存储在数据库中?或者你只是存储“模板”循环事件和它们的异常?
如果用户请求一个“月”视图,而您想要显示所有的事件/任务,看起来就像是从模板实时创建输出,并且包含所有异常将比从模板创建每个重复任务并将其插入到数据库中的资源消耗要大得多。
这也将使搜索/排序等变得更加容易。
以前有没有人创造过这样的东西?想法?
发布于 2010-10-22 06:02:42
将其全部存储在数据库中。
您希望有一个"Task Template“表和一个"Task”表,其中存在一对多关系。
当用户指出他们想要重现一个任务时,创建一个“任务模板”记录,然后按照用户的指示创建尽可能多的“任务”(不要让用户创建太久的任务)。每个任务都通过一个外键链接到任务模板。其想法是,SQL在管理这些记录方面将比试图在基于一个模板的代码中完成这一切更有效率。这样,您在排序和筛选数据时将有更多的选择。毕竟,编写SQL查询比编写、测试和维护操作数据的PHP函数更容易。
我要给你的其他一些建议是:
发布于 2010-10-22 08:31:06
对于重复发生的事件,我前段时间做了以下工作:
当用户输入一个事件时,我存储了事件的日期模式GNU date style -的关键字是relative date formats.
发布于 2010-10-22 05:55:27
不久前我遇到了同样的问题,我没有重新发明轮子,而是使用了Google Calendar API。(http://code.google.com/apis/calendar/data/2.0/developers_guide.html)
您创建一个Google帐户并访问日历信息。有一些API可用于创建/编辑/删除循环条目。此外,您还可以指定日期/时间信息并查询匹配的事件。
当您在Google Calendar上创建事件时,您将收到一个令牌/id,您可以将其存储在您自己的数据库中,并在应用程序的上下文中引用它。
https://stackoverflow.com/questions/3992187
复制相似问题