Я хочу отображать повторяющееся событие на дисплее даты / времени в приложении. Это отображение даты и времени может иметь форму календаря, но это также может быть просто список предстоящих событий.
Как лучше всего отслеживать это событие, которое может повторяться?
Например: должно ли событие один раз сохраняться в базе данных и проецироваться / повторяться несколько раз в коде отображения? Должно ли событие сохраняться несколько раз, а затем просто визуализироваться?





Я думаю, это зависит от типа мероприятия. Это похоже на Рождество, когда однажды оно приходит и случается, вы действительно не интересуетесь им до следующего события? Или это задача типа «Обязательно звонить маме каждый месяц», где, если это произойдет, а вы пропустили это, вы бы не захотели, чтобы это ушло?
Один из способов, которым я недавно реализовал последнее, заключался в том, чтобы иметь запись со столбцами next_occurrence (дата), reoccurence_period (еженедельно, ежемесячно, ежегодно и т. д.). Чтобы по мере приближения следующего вхождения оно отображалось в списке. Как только он будет передан, элемент списка будет иметь значок корзины, который при нажатии обновит запись до следующего появления в будущем.
Опять же, я не уверен, применимо ли это к вашей ситуации, но в моей это сработало.
Я делал что-то подобное раньше и основывал свою схему на таблице sysschedules SQL-серверов.
http://technet.microsoft.com/en-us/library/ms178644.aspx
Схема, указанная выше, позволит вам сохранить расписание для задания (события). Затем вы можете рассчитать, в какие даты произойдет событие, исходя из расписания. Это может быть длительный расчет, поэтому я бы попытался где-нибудь кэшировать этот результат.