所以我正在为一个管理许多救援人员的机构开发一个数据库。
救援人员在三个类别(白天,傍晚,夜晚)之一中设置每天的可用性。
我们还需要能够设置一些兼职救济工作人员,每周一次,每两周一次,并在一个例子中进行为期9周的轮换。由于我们已经在这里开发反复出现的可用模式,我们也可以给救援人员提供设置重复可用日期的选项。
我们还需要能够查询数据库,并确定某个员工是否在某一天可用。
但是这里有问题 - 我们需要能够使用变更数据捕获。所以我不确定计算可用性是否是最佳选择。
我的SQL原型表如下所示:
TABLE Availability Day
employee_id_fk | workday (DATETIME) | day | eve | night (all booleans)| worksite_code_fk (can be null)
我真的很想如何围绕重复发生的事件。我可以在“x”日周期中创建一个模式,即一年后的可用性日期。但是,我们提前存储信息的时间有多远?当我们到达数据集的末尾时,我可以看到遇到问题。
我正在考虑存储说,6个月的信息,然后添加一个每月运行的服务器端任务,以保持表更新6个月的数据,但我的直觉告诉我这是一个糟糕的修复。
答案 0 :(得分:1)
为了保证未来的绝对灵活性并保持数据不膨胀我的第一个想法就像是
现在和这里可能是奇怪的部分,我会在特定和重复可用性表上放置一个可用列,也许使它成为一个小的int并存储0不可用,1可用,2可能,3可用通知。
如果您想考虑可用性和通知,您也可以为此添加列,例如x#天。如果你想要充分的灵活性,那么它也可能成为一个相关的表格。
查询会很复杂但您可以使用存储过程或表值函数来定期处理它。