如何将数据(注释,受让人)存储到使用RRULE
问题描述:
生成的周期性事件中我正在构建一个允许用户创建周期性事件的日历应用程序。如何将数据(注释,受让人)存储到使用RRULE
不是为每一个反复出现的事件创建MongoDB中一个新的对象,我创建与连接到它的重复规则的单个事件对象。
然后在客户端上我是“扩大”复发规则的事件,因此他们都显示在日历中的每次复发创建临时对象。
这所有作品真的很好,我的防止从DB任何时候的事件经常复发填充了上百个对象。我的问题是:我如何才能针对每个重复事件存储数据?例如,玩Google日历我可以创建一个周期性事件,然后为每个重复添加“注释”。笔记可以添加到单个事件或所有事件。
我的想法至今都当用户想加“注释”,添加一个EXDATE用户正在编辑的复发,然后为它创建一个新的独立事件对象。
我不知道这是接近这虽然最好的办法。建议非常感谢。
答
以iCalendar表示,这样的异常模型的正确方法的方面是有它是同一事件(同一UID)的一部分,与附加RECURRENCE-ID参数。你不应该添加一个EXDATE:
BEGIN:VEVENT
UID:XXX
DTSTART;TZID=zzz:20170401T090000
RRULE:FREQ=DAILY
...
END:VEVENT
BEGIN:VEVENT
UID:XXX
RECURRENCE-ID;TZID=zzz:20170405T090000
DTSTART;TZID=zzz:20170405T090000
...
END:VEVENT
请注意,异常的复发ID应该总是对应于从RRULE计算的日期时间,而例外的DTSTART可能不同(例如,如果上一个实例从9日至10移动事件的时间,复发-ID将是T090000,而DTSTART将有T100000。