Note that there are some explanatory texts on larger screens.

plurals
  1. PORepresenting complex scheduled recurrence in a database
    primarykey
    data
    text
    <p>I have an interesting problem trying to represent complex schedule data in a database. As a guideline, I need to be able to represent the entirety of what the iCalendar -- <code>ics</code> -- format can represent, but in a database. I'm not actually implementing anything relating to <code>ics</code>, but it gives a good scope of the type of rules I need to be able to model for my particular project.</p> <p>I need to allow allow representation of a single event or a recurring event based on multiple times per day, days of the week, week of a month, month, year, or some combination of those. For example, the third Thursday in November annually, or the 25th of December annually, or every two weeks starting November 2 and continuing until September 8 the following year.</p> <p>I don't care about insertion efficiency but query efficiency is critical. The operation I will be doing most often is providing either a single date/time or a date/time range, and trying to determine if the defined schedule matches any part of the date/time range. Other operations can be slower. For example, given January 15, 2010 at 10:00 AM through January 15, 2010 at 11:00 AM, find all schedules that match at least part of that time. (i.e. a schedule that covers 10:30 - 11:00 still matches.)</p> <p>Any suggestions? I looked at <a href="https://stackoverflow.com/questions/1016170/how-would-one-represent-scheduled-events-in-an-rdbms">How would one represent scheduled events in an RDBMS?</a> but it doesn't cover the scope of the type of recurrence rules I'd like to model.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload