如何实现带有重复事件的日历?
我正在尝试实现一个可以重复事件的日历。简单来说,比如说:“每个工作日的10:00到12:00之间会发生某件事。”
我想知道在数据库中存储这些数据的最正确方法是什么,以及如何进行搜索。搜索的方式可能是“给我2012年2月21日星期二的所有事件。”
我打算使用关系型数据库来存储这些数据。
附注:我计划使用Python和Django,这样可以利用现有的库。
1 个回答
4
在决定如何存储数据时,你需要考虑以下几点:
- 用户是否应该能够重新安排或删除某个重复事件
- 同样,重复事件的更改是应该影响所有事件,还是只影响未来的事件?
- 你是否在意数据库中会产生很多记录?
如果前两个问题的答案是“是”,而最后一个问题的答案是“否”,那么实现这个功能最简单的方法就是让事件有一个“父事件”,然后创建一个叫做“重复”的记录,来说明一个基础事件是如何重复的。这样每当重复事件发生变化时,就会触发一个脚本,来创建或重新创建这些事件。
查找这些事件就变得非常简单:因为它们是真正的事件,所以你只需要直接搜索它们就可以了。