Sql 连续发生的事件

Sql 连续发生的事件,sql,calendar,Sql,Calendar,我已经成功地整合了这个问题的答案: 然而,现在我想到了一个问题。如果用户希望编辑序列中的单个事件,该怎么办?或删除事件发生。这需要自行处理,而不是链接回其父id。或者,如果用户希望在特定事件上留下注释 目前我唯一能想到的是将每个重复发生的事件存储在自己的行中,我认为这不是一个好主意 但是,无法找到替代方法。我想从理论的角度而不是特定的sql或编程语言来获取意见。为了实现这一点,您可以引入一种新类型的事件,它只是向属于事件系列的元素添加额外的数据。从技术上讲,您存储对单个事件发生所属的事件系列的

我已经成功地整合了这个问题的答案:

然而,现在我想到了一个问题。如果用户希望编辑序列中的单个事件,该怎么办?或删除事件发生。这需要自行处理,而不是链接回其父id。或者,如果用户希望在特定事件上留下注释

目前我唯一能想到的是将每个重复发生的事件存储在自己的行中,我认为这不是一个好主意


但是,无法找到替代方法。我想从理论的角度而不是特定的sql或编程语言来获取意见。

为了实现这一点,您可以引入一种新类型的事件,它只是向属于事件系列的元素添加额外的数据。从技术上讲,您存储对单个事件发生所属的事件系列的引用。这样,您就能够维护事件系列和覆盖事件发生之间的关系。而且,如果事件系列的日期/时间参数以排除特定事件的方式更改,您只需从事件中删除对该系列的引用,将其转换为单个实例。

为什么不使用一个单独的表,例如,它可以覆盖主表,如果表B中的记录显示给定实例的定期项目已被删除或修改,请使用该记录确定您的操作,否则请使用主表中的内容。换句话说,当一个重复项目的一个实例需要更改时,只需在表B中添加一条记录。嘿,感谢您的快速评论,但是您如何引用主事件表?也就是说,重复性参数从每天变为每周,你还能维持这种关系吗?假设一个用户在第三天添加了一个关于事件的注释,并且原始事件被设置为“每日”重复。然后它被更新为每周…随着事件从每天到每周,从每天到每周的更改将出现在主表中,否则它将被完全删除,并插入一条新记录作为每周提醒。至于注释,如果它是为一个实例(一周的第三天)添加的,那么该实例将不再发生,因为它已切换为每周,因此我不确定您将如何处理该实例。您可以随时将便笺移动到下一个通知,或者在允许更改为“每周”之前警告用户?谢谢您的回答@Sideways。我想我理解你的意思,但我现在有两个表:1)Events和2)Events。你建议我添加一个新的表3)EventExceptions,它有一个外键指向Events Id?如果是这样,您如何指定要覆盖的时间/日期槽?通过使用专用表或在主表中具有附加属性,在这两种情况下,您都可以引用事件系列,但当然,您还需要存储专用日期/时间,以便能够首先将其映射到单个事件发生。