我需要在我的数据库中安排事件,任务,约会等。其中一些将是一次性约会,而另一些则是重复出现的"To-Dos“,必须勾选。在看了google的日历布局和其他内容之后,再加上我在这里做了大量阅读,这就是我到目前为止所拥有的。
日程表(我想可以称为日程表):Basic_Event标题,开始/结束,重复出现的信息。
日历事件表:与日程表、事件特定文本、下一次事件日期/时间有关?
这里介绍了SQL Server是如何完成其工作的:http://technet.microsoft.com/en-us/library/ms178644.aspx,但这略有不同。
为什么有两个表:我需要跟踪重复出现的任务的每个实例的状态。否则这将会简单得多。
所以..。关于这些问题:
1)这看起来是正确的方法吗?有没有更好的方法来处理多次出现的问题?
2)我应该多长时间/多长时间触发创建实例?我真的不想创建一堆事件...但是..。如果用户想要查看下一年的日历...
发布于 2012-03-09 04:55:34
将任务的调度定义放在一个表中,然后在一个单独的表中分别记录每个实例,这是很有意义的--这是我过去采取的方法。
关于创建实例,可能没有必要预先创建所有实例。尤其是当你考虑到无限期重复的任务时!同样,我在过去使用的方法是只创建下一个事件。当该实例被操作时,然后计算并创建下一个实例。
这就留下了查看未来事件的问题。为此,您可以从初始/下一个计划的事件开始,并在显示时动态计算未来的事件。
发布于 2012-03-09 04:54:37
虽然这不是您问题的确切答案,但我以前在SQL Server中(尽管这里与数据库无关)通过基于Unix's cron的解决方案建模解决了这个问题。
我们使用表中的整数列来存储各种时间单位,而不是字符串解析。
我们有可以调度的事件;它们既可以指向表示不同时间点(日期/时间)的一次性调度表,也可以指向仿照cron建模的循环调度表。
此外,请记住正确地对您的解决方案进行建模。事件具有持续时间,但持续时间与日程安排无关(但事件的持续时间可能会导致冲突,从而影响日程安排)。不要试图将持续时间建模为您的计划的一部分。
发布于 2012-03-09 04:57:18
在过去,当我们这样做的时候,我们有两个表:
1) Schedule ->包含重复信息
2)对特定实例的异常->编辑/更改
使用SQL,可以获得在给定日期范围内至少有一个实例的“计划”列表。然后,您可以在GUI中展开每个实例所在的位置。
https://stackoverflow.com/questions/9624699
复制相似问题