如何实现带有重复事件的日历?

0 投票
1 回答
831 浏览
提问于 2025-04-17 10:42

我正在尝试实现一个可以重复事件的日历。简单来说,比如说:“每个工作日的10:00到12:00之间会发生某件事。”

我想知道在数据库中存储这些数据的最正确方法是什么,以及如何进行搜索。搜索的方式可能是“给我2012年2月21日星期二的所有事件。”

我打算使用关系型数据库来存储这些数据。

附注:我计划使用Python和Django,这样可以利用现有的库。

1 个回答

4

在决定如何存储数据时,你需要考虑以下几点:

  • 用户是否应该能够重新安排或删除某个重复事件
  • 同样,重复事件的更改是应该影响所有事件,还是只影响未来的事件?
  • 你是否在意数据库中会产生很多记录?

如果前两个问题的答案是“是”,而最后一个问题的答案是“否”,那么实现这个功能最简单的方法就是让事件有一个“父事件”,然后创建一个叫做“重复”的记录,来说明一个基础事件是如何重复的。这样每当重复事件发生变化时,就会触发一个脚本,来创建或重新创建这些事件。

查找这些事件就变得非常简单:因为它们是真正的事件,所以你只需要直接搜索它们就可以了。

撰写回答