微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中模拟任务所需的全部内容.

原文地址:https://www.jb51.cc/mssql/78600.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐