in reply to storing and 'understanding' complex calendar events (including recurring events)

I would have (at least) four tables in my database:
  1. The table with all events (recurring and not recurring)
  2. The table with all dates on which an event will take place
  3. A linking table between the "event" table and the "date" table.
  4. The table with the formula for recurring events.

Every so often (say once a week for all future events and immediately once a new recurring event is entered) the table with recurring events is read and the dates for these events (or only for the new recurring event -- as the case may be) for the next x months are calculated and put in the dates-table and linking table. At the same time, past events are deleted from all tables as necessary.

I find this a good balance between fast look-up and keeping your tables simple, lean and easy to maintain.

CountZero

"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

  • Comment on Re: storing and 'understanding' complex calendar events (including recurring events)