我需要在我的数据库中安排事件,任务,约会等。其中一些将是一次约会,一些将重新发布“To-Dos”,必须检查。看了谷歌的日历布局和其他人之后,再加上我在这里做的很多阅读就是我到目前为止所做的。
日历表(可以称为调度表):Basic_Event标题,开始/结束,重新发送信息。
日历发生表:与计划表,发生特定文本,下一个发生日期/时间的关系????
在这里查看SQL Server如何完成其工作:http://technet.microsoft.com/en-us/library/ms178644.aspx 但这有点不同。
为什么有两个表:我需要跟踪重复任务的每个实例的状态。否则这会更简单......
所以...问题:
1)这似乎是正确的方法吗?有没有更好的方法来处理多重发生问题?
2)我应该多久/如何触发事件的创建?我真的不想创建一堆事件......但是......如果用户想要查看明年的日历怎么办...
答案 0 :(得分:4)
将一个任务的日程安排定义放在一个表中,然后单独一个表分别记录每个实例 - 这是我过去采用的方法。
关于创建事件,可能没有必要预先创建它们。特别是当你考虑无限重复的任务时!同样,我过去使用的方法是仅创建下一个出现的方法。当该实例被操作时,然后计算并创建下一个实例。
这留下了查看未来事件的问题。为此,您可以从初始/下一个计划发生的事件开始,并在显示时即刻计算未来的事件。
答案 1 :(得分:0)
虽然这不是您问题的准确答案,但我之前在SQL Server中解决了这个问题(尽管这里的数据库无关紧要),可以通过基于Unix's cron的解决方案建模。
我们使用表中的整数列来存储各种时间单位,而不是字符串解析。
我们有可以安排的活动;他们可以指向表示不同时间点(日期/时间)的一次性计划表,也可以指向以cron为模型的经常性计划表。
另外请记住正确建模您的解决方案。事件具有持续时间但持续时间与计划无关(但事件的持续时间可能通过引起冲突影响计划)。不要试图将持续时间建模为计划的一部分。
答案 2 :(得分:0)
过去当我们这样做时,我们有2个表:
1)时间表 - >包括重复信息
2)例外 - >编辑/更改特定实例
使用SQL,可以获得在给定日期范围内至少有一个实例的“计划”列表。然后,您可以在GUI中展开每个实例所在的位置。