Calendar 好的活动日历/日程安排设计指南?

Calendar 好的活动日历/日程安排设计指南?,calendar,scheduling,Calendar,Scheduling,在我正在设计的应用程序中,用户必须能够指定相当复杂的事件调度(连续时间块与每日时间块、异常日期/时间、重复模式等) 有人知道网上有这样一个好的设计页面吗?例如,关于如何进行数据库审计跟踪的描述给我留下了深刻的印象,我很喜欢类似的东西 当前思维 我的数据库将包含以下表之一:Events和ScheduleItems 关系将是事件{1--0..*}ScheduleItems 事件将具有以下列:eventId、schedulePattern ScheduleItems将具有以下列:eventId、st

在我正在设计的应用程序中,用户必须能够指定相当复杂的事件调度(连续时间块与每日时间块、异常日期/时间、重复模式等)

有人知道网上有这样一个好的设计页面吗?例如,关于如何进行数据库审计跟踪的描述给我留下了深刻的印象,我很喜欢类似的东西

当前思维
  • 我的数据库将包含以下表之一:Events和ScheduleItems
    • 关系将是事件{1--0..*}ScheduleItems
    • 事件将具有以下列:eventId、schedulePattern
    • ScheduleItems将具有以下列:eventId、startDateTime、endDateTime
  • 前端控件允许用户指定一般规则(每日/连续、包括/不包括周末、开始/结束日期/时间等)。如果他们对现有控件不满意,他们可以选择显示并手动调整生成的“时间块”
  • 在保存事件计划时。。。
    • 如果只使用提供的控件(无调整),我会将它们的选择保存为事件表中的模式(即“sd:2010-04-28;st:09:20:00;ed:2010-05-12;et:17:20:00;r:2w[M-Th];z:EST”等)
    • 如果用户手动调整生成的时间块,我将在ScheduleItems表中保存每个单独的时间块,并为Events.schedulePattern指定一个特殊代码(“手动”或其他)
  • 赞成的意见 我应该能够通过模式字段直接保存>90%的事件,并且能够通过“暴力”ScheduleItems表处理任何其他角落的情况。由于一些已处理的案例包括可能持续数月的事件(否则将导致大量时间段),因此将其放在一行相当有吸引力

    欺骗 这是一个相当复杂的解决方案;任何需要此数据的其他系统都需要能够解析schedulePattern,并知道何时获取ScheduleItems。

    以成熟的方式,“schedulePattern”使用格式存储用户的计划是运行任务的一个好主意

    这种格式简单但复杂。在关系数据库中,如果您使用合适的索引将Cron的每个“条目”分离到一列表中,则会有一些性能优势

    然而,所做的工作是在这种格式和用户界面之间进行转换。以及最初应记录用户输入的原始数据


    我会设计两种表格,一种用于用户输入的原始数据,另一种用于运行计划任务。

    您是否提出了一种有效的表格设计?你能分享一下吗?