sql – 用于存储事件重复发生的详细信息的数据库设计

前端之家收集整理的这篇文章主要介绍了sql – 用于存储事件重复发生的详细信息的数据库设计前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要实现类似于Microsoft Outlook提供的功能,以使您的会议预约重复.我试图找出我将要求实现此功能的优化数据库设计.

该要求类似于用户输入的每个运行或任务也适用于像周期事件一样的安排 – 每周,每月或每年.能否请您建议数据库模型 – 用于在DB中存储这些详细信息的表结构(带有约束),然后程序可以执行相应的任务.可以在following link找到一些可能的调度程序详细信息的屏幕截图.

我们在后端运行一个MysqL DB来存储这些细节.一旦用户提交请求,具有请求细节的请求id就存储在表中,然后程序采取与其对应的动作.更清楚的是,用户的意图是运行sql脚本,获取值,然后对其执行统计分析.但是,由于oracle参考DB由许多用户动态更新,他希望以循环方式运行它并完成分析.请注意,MysqL db和ref DB是不同的.

如果您需要任何其他细节,请告诉我.

解决方法

我建议将第一次出现的详细信息存储在一个表中(计划任务),然后将另一个表中的重复性(重复任务)详细信息存储起来.

然后,我可能还会尝试在每个任务完成时更新下一次出现的计划任务表.

至于表格布局,粗略草图如下:

[ScehduledTasks]
TaskId(主键)
描述和细节等……
开始日期时间
结束日期时间

[RecurringTasks]
TaskId(外键)
频率:每日,每周,每月或每年.
DayNo:运行的日期(每周1-7,每月1-31,每年1-365)
间隔:每x周,几个月等
WeekOfMonth:第一个,第二个,第三个……等如果填充,则DayNo指定星期几.
MonthOfYear:1-12.
EndDatetime:要执行的最后日期
出现次数:执行次数.如果此值和前一个值为null,则执行永久.

根据任务的设置方式,某些字段显然是空白的,但我认为上述内容涵盖了在Outlook中模拟任务所需的全部内容.

猜你在找的MsSQL相关文章