Sql 用于存储事件反复发生的详细信息的数据库设计

Sql 用于存储事件反复发生的详细信息的数据库设计,sql,database-design,data-modeling,Sql,Database Design,Data Modeling,我需要实现一个类似于Microsoft Outlook提供的功能,以使您的会议约会重复进行。我正试图找出实现此功能所需的优化数据库设计 需求类似于用户输入的每个运行或任务也将适用于计划,如每周、每月或每年的重复事件。你能给我建议一下数据库模型表结构(带约束)吗?用于将这些细节存储在数据库中,然后程序可以访问这些数据库来执行相应的任务。有关某些可能的调度程序详细信息的屏幕截图,请访问 我们在后端运行了一个mysql数据库来存储这些细节。一旦用户提交一个请求,表中就会存储一个包含请求详细信息的请求i

我需要实现一个类似于Microsoft Outlook提供的功能,以使您的会议约会重复进行。我正试图找出实现此功能所需的优化数据库设计

需求类似于用户输入的每个运行或任务也将适用于计划,如每周、每月或每年的重复事件。你能给我建议一下数据库模型表结构(带约束)吗?用于将这些细节存储在数据库中,然后程序可以访问这些数据库来执行相应的任务。有关某些可能的调度程序详细信息的屏幕截图,请访问

我们在后端运行了一个mysql数据库来存储这些细节。一旦用户提交一个请求,表中就会存储一个包含请求详细信息的请求id,然后程序就会执行与之对应的操作。更清楚的是,用户的意图是运行sql脚本,获取值,然后对其执行统计分析。但是,由于oracle参考数据库是由许多用户动态更新的,因此他希望以循环的方式运行它并完成分析。注意mysql数据库和ref数据库是不同的


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

我建议将第一次发生的详细信息存储在一个表(计划任务)中,然后将重复发生的详细信息存储在另一个表中

然后,当每项任务完成时,我可能还会尝试用下一次发生的情况更新计划任务表

关于表格布局,大致草图如下:

[ScehduledTasks]
TaskId(主键)
说明和细节等。
开始日期时间
结束日期时间

[重复任务]
TaskId(外键)
频率:每天、每周、每月或每年。
日期号:运行日期(每周1-7天,每月1-31天,每年1-365天)
间隔:每x周、月等
周月:第一,第二,第三。。。etc如果已填充,则DayNo指定一周中的哪一天。
月份:1-12。
EndDatetime:最后执行的日期
发生次数:要执行的次数。如果此值和上一个值为null,则永远执行


显然,根据任务的设置方式,某些字段将为空,但我认为以上内容涵盖了您在Outlook中模拟任务所需的所有内容。

这是我的想法,但我不确定如何存储或更恰当地表示用户输入的定期计划,例如,如果用户选择“每月->每周一”作为其定期请求,那么我如何在DB中存储这些详细信息这样程序就可以访问这些细节,并同样地安排任务。您是否在速度、可靠性、可访问性、可扩展性或其他方面进行了优化?听起来可访问性几乎是你最关心的问题。