Управление текущими календарными данными - PullRequest
4 голосов
/ 18 февраля 2009

Мне нужно создать веб-приложение, в котором есть раздел календаря событий. Как и в Outlook, требование заключается в том, чтобы пользователи могли настраивать повторяющиеся события и перемещать отдельные события внутри серии событий.

  1. Какие методы можно использовать для хранения (в базе данных) различных способов описания шаблона повторения серии?
  2. Как можно записать исключения?
  3. Какие стратегии вы используете для управления переопределением ряда и его влиянием на исключения?

Я делал это пару раз, по-разному, но я хотел бы посмотреть, как другие решают эту проблему.

Ответы [ 3 ]

4 голосов
/ 18 февраля 2009

Посмотрите на , как формат iCal работает с шаблонами повторения и исключения повторения . Если вы захотите опубликовать события в какой-то момент, вам все равно будет сложно отказаться от iCal, так что вы можете сделать это совместимым образом с самого начала.

3 голосов
/ 18 февраля 2009

С одной стороны: если вы еще не знакомы с ним, посмотрите на RFC 5545 (который заменяет RFC 2445 ), который определяет спецификацию iCalendar именно для этого вида шаблона.

0 голосов
/ 18 февраля 2009

Обычно я предоставляю интерфейсную логику, которая позволяет пользователю указывать повторяющееся событие, но затем фактически использует отдельные записи базы данных для записи событий как отдельных записей в SQL-сервере.

Другими словами, они могут указывать собрание каждый вечер понедельника в 19:00, но я записываю 52 записи за год, чтобы можно было изменять, удалять отдельные собрания или добавлять дополнительную информацию к этим событиям.

Я предоставляю методы, позволяющие пользователю отменять все будущие события, а затем повторно вводить новые повторяющиеся серии, если это необходимо.

У меня нет идеального способа справиться с этим, поэтому я буду следить за этой веткой, чтобы увидеть, не появятся ли какие-нибудь замечательные предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...