ER DIAGRAM 中预定班次与实际班次的对应问题

问题描述 投票:0回答:1

员工有一把强钥匙。一方面,我记录每个员工的轮班日历(“轮班日历”),另一方面,我记录员工实际执行的轮班。现在,如果员工“X”有两个轮班,一个在周一早上,另一个在周二早上,我们假设他在周一晚上到达,当他到达时,他指的是他迟到的周一早班或周二早上转移他预计到达的地方?预定班次与实际执行的班次没有对应关系。

呃图

如何添加匹配项而不产生冗余?

我考虑过将“轮班日历”与“实际轮班”以 1:1 的关联关联起来,以跟踪已执行的轮班以及它们引用的计划轮班,但我不知道这是否是最佳选择。

database-design architecture entity-relationship
1个回答
0
投票

如何添加匹配项而不产生冗余?

预测(日历)班次和实际班次是现实世界中的两个不同的事物,在此基础上没有冗余 - 两组数据都代表可能具有商业价值的东西。例如,如果您想对预测与实际进行分析(与预测不匹配的实际班次百分比等),则需要两者。

  • Employee
    Forecasted Shift
    是多对多,假设有不止一名员工被分配到给定的预测班次。
  • Employee
    Actual Shift
    是多对多,假设有不止一名员工参与给定的实际班次...
  • ...然而,它可能是一对多关系,其中
    Actual Shift
    表实际上是
    Employee Actual Shift
    表 - 下面将详细介绍。

关键在于预测的变化与实际变化的关系(如果有的话)。例如:

  • 实际轮班可能只不过是所发生事件的记录 - 即,除了员工的链接以及日期/时间范围之外,实际轮班和预测轮班之间可能没有任何联系。
  • 假设存在总是预测轮班(例如,如果您正在进行版本控制,则为最新轮班),您可以包含对导致员工进行实际轮班的预测轮班的引用;这导致了
    Employee Actual Shift
    模型:

[ ID | Employee ID | Forecasted Shift ID | Actual Shift Start Date/Time | Actual Shift End Date/Time ]

地点:

  • Employee
    Employee Actual Shift
    是一对多(一名员工有多个实际班次,但一个实际班次仅指一名员工。
  • Forecasted Shift ID
    Employee Actual Shift
    是 1 对 1。
© www.soinside.com 2019 - 2024. All rights reserved.