Логика повторения календаря PHP

Я знаю, что существует миллион проектов, которые уже сделали это. Сказав, что я пытаюсь создать онлайн-календарь с использованием PHP и MySQL, вот что я планирую:

  1. таблицы в базе данных

    ((calendar_item)
    id, title, start_date, start time, end time, recurrence_type_id,
    recurrence_qty, interval, end_date)
    ((recurrence_type)
    id, name, value (where I want to store the logic so it can be edited
    on the fly))
    ((calendar_item_exception)
    id, calendar_item_id, title, start_date, start time, end time,
    recurrence_type_id, recurrence_qty, interval, end_date)
    ((join_calendar_day)
    calendar_id, day_id)
    ((day)
    id, name)
    
  2. Базовый поток, вытащить все записи из базы данных INNER JOIN calendar_item и calendar_item_exception ON id / calendar_item_id

  3. начните с просмотра сегодняшней даты на предмет исключения и распечатайте все, что там есть ... если ничего не перейдите к календарю_item.

До сих пор все это имеет смысл в моей голове. Я хотел бы знать, куда идти дальше, чтобы добавить фактическую логику для recurrence_id и как ее реализовать:

т.е. элемент находится на __date recurs (recurrence_id) ежедневно (qty) 5x (интервал) каждые 3 дня (join_calendar_day) в понедельник, среду, пятницу

Я видел формат ical и смотрел на PEAR, но, честно говоря, не могу уловить следующий шаг в моей голове, чтобы сделать исключения (что я действительно хочу, чтобы это произошло без использования другой структуры, предпочтительно только PHP и MySQL).

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

Ни PEAR, ни Ruby, ни Horde, ни других фреймворков, только PHP и MySQL и, пожалуйста, как можно проще.

Ответов (1)

Это дубликат этих вопросов:

Хорошая ссылка на один из этих вопросов - это статья Мартина Фаулера об этом.