Дизайн базы данных: расписания, включая повторение

Мне нужно разработать приложение, поддерживающее «расписания». Пример расписания:

  • 1 января 2011 г. в 9:00
  • 1 января 2011 г. с 9:00 до 10:00
  • Каждый понедельник в 9:00 с 1 января 2011 г.
  • Каждый понедельник в 9:00 с 1 января 2011 г. по 1 февраля 2011 г.
  • Каждый понедельник в 9:00 с 1 января 2011 г. для 10 случаев
  • и т. д.

Если вы видели планировщик Outlook, то в основном это то, что мне нужно. Вот скриншот их пользовательского интерфейса: http://www.question-defense.com/wp-content/uploads/2009/04/outlook-meeting-recurrance-settings.gif

Как бы я смоделировал такой информация в базе данных? Имейте в виду, что мне также нужно запросить это, например:

  • Какие запланированные события на сегодня?
  • Каковы следующие 10 дат / времени для конкретного повторяющегося запланированного события?
  • И т. Д.

Я использую PHP / MySQL, но открыт для альтернативных решений. Предложения?

5
задан StackOverflowNewbie 13 October 2011 в 22:29
поделиться