在数据库中表示复杂的计划重复

我有一个有趣的问题,试图在数据库中表示复杂的计划数据.作为指导,我需要能够代表iCalendar – ics – 格式可以代表的全部内容,而在数据库中.我实际上没有实现与ics相关的任何东西,但它给出了我需要为我的特定项目建模的规则类型的很好的范围.

我需要允许基于每天多次,一周中的几天,一个月,一年的这些或其某些组合允许表示单个事件或重复事件.例如,11月份的11月第3个星期四,或者是12月25日,或从11月2日开始的每两个星期,直到次年9月8日.

我不关心插入效率,但查询效率至关重要.我最常做的操作是提供单个日期/时间或日期/时间范围,并尝试确定定义的计划是否与日期/时间范围的任何部分相匹配.其他操作可能会更慢.例如,2010年1月15日上午10:00至2010年1月15日上午11:00,找到与该时间至少部分匹配的所有时间表. (即涵盖10:30至11:00的时间表仍然匹配.)

有什么建议么?我看着How would one represent scheduled events in an RDBMS?,但并不涵盖我想建模的循环规则类型的范围.

解决方法

最后,这篇文章是最有帮助的:

iCal “Field” list (for database schema based on iCal standard)

我们决定跟随iCal模型,因为那些写这个标准的人对问题领域有很好的感觉.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...