小编Ban*_*joe的帖子

调度数据库(基本计划+例外)

目前,我们的员工安排在一家24/7公司为约800名员工安排Excel工作簿.我需要将所有调度都移到我设计的Access员工数据库中,这是我们多年来一直使用的.(注意:我知道Access不是理想的平台,但它就是我拥有的.)

每位员工都有一个基本时间表,例如凌晨2点开始时间,周三/周四休息.任何给定周的员工日程安排将由例外修改,例如:

  • 休假请求
  • 与另一名员工轮班转换一天
  • 缺席的叶子(基本上是另一种形式的休假)
  • 根据计划管理员的公司需求安排更改

数据库只需存储基本计划,并以某种方式显示给定周的计划.它并不需要像根据实际情况安排任何先进的逻辑.

我可以看到实现这一点的几种方法.我想到的第一个问题是存储基本计划,然后根据需要动态生成给定周的计划,方法是将基本计划与基于上述例外的表(时间关闭,交换机等)相结合.但是,我看不到如何存储基本计划以及如何将基础与例外合并以生成计划.我想像baseSchedule(PKScheduleID,FKEmployeeID,DayOfWeek,StartTime)这样的表,但我不确定.

另一种方法是在表格中生成每周计划,例如使用此处描述的"三表Kimball Star"方法:http://www.damirsystems.com/?p = 466 .基本上,它创建了一个充满日期的表格,并与员工建立多对多关系以定义日程安排.我不喜欢这种方法,原因很多,例如每次添加时都需要在应用程序级别检查/修改该表等,以及需要在表中"生成"新的计划.此外,这可能会增加到2000多名员工,我担心糟糕的访问将在火焰中爆炸,每天都有每位员工的记录.

有没有人有任何设计思路来实现基本计划+修饰符方法?我很乐意只使用查询来生成计划,但如果有必要,我很乐意使用VBA.

谢谢

编辑8/19/11 4:30 pm: 我想我会选择与bluefeet的答案非常相似的东西.下面是我在空白数据库中模拟的设计:

设计

每位员工将在一周中的每一天在基本表中记录一个记录,其中包含开始时间和计划工作的小时数.还有一个例外表,列出了对日程表,员工和他的新班次的日程表的修改.

对于应用程序级别表单和报告,我将基本计划拉入记录集,其中包含非常草率的查询,输出如下内容:

Name  Mon     Tue     Wed     Thu     Fri     Sat     Sun
Alice 6:00 PM 6:00 PM Off     Off     2:00 PM 2:00 PM 2:00 PM
Bob   4:00 PM 4:00 PM 4:00 PM 4:00 PM Off     Off     4:00 PM 
Run Code Online (Sandbox Code Playgroud)

然后,在VBA中,我还将日期范围(一周)的异常拉入记录集.我将循环遍历异常记录集,修改基本记录集(从上面).然后我将设置表单/报告以使用修改后的记录集.它有点不雅,但它可以很好地完成工作.

如果有人有任何想法,如何将Base和Exceptions表与上面的输出结合使用,只使用查询而不使用VBA,请告诉我.

再次感谢

sql database ms-access

8
推荐指数
1
解决办法
5963
查看次数

标签 统计

database ×1

ms-access ×1

sql ×1