我有一个存储我所有日历事件的 SQLite 数据库,建模如下:
TimerEvent
*Attributes
-date
-dateForMark
-reminder
*Relationships
-eventInfo (<->)
EventInfo
*Attributes
-location
-notes
-recurringKey
-reminderKey
-title
*Relationships
-timerEvent (<->)
-repeat (<->>)
Repeat
*Attributes
-repeatDate
*Relationships
-eventInfo(<->>)
创建事件时,会创建 TimerEvent,并插入三个日期值。然后,创建与 EventInfo 实体的关系,插入事件的位置、标题、注释和提醒/重复键。如果如果重复键不是 -1,则根据 TimerEvent 日期和用户输入确定的日期之间的重复日期数创建重复实体。
我的日历比读取所有日期,显示它们,然后在我的 AgendaView 中可以显示来自“父”实体的所有信息(EventInfo 不是重复的父实体。它只是与可以创建的许多重复)。编辑时出现问题...如果我想编辑其中一个重复事件,仅编辑该事件(不是跟随者或之前的),我将重复对象追溯到 EventInfo 对象,更改该信息会更改每个事件的信息。我只能想象两种解决方案:
1. Add extra NSString attributes to repeat events for when events are edited
2. Create a new event JUST for that object, nullify the existing relationship,
and use the repeatDate as the main date.