我正在根据他们拥有的员工组或梯队构建一次性支付员工公务旅行的应用程序,我需要一些帮助如何正确存储数据,因为我面临的问题是员工总是有一个组(根据他们的服务年限或受教育程度),但不一定有梯队。因为可以将梯队分配给他们拥有的最低要求组级别的员工。
最小示例是:
具有组 IIIa 的员工可以分配给他们的最低梯队 Va。
以供参考,
员工组:(从高到低)
团体 | 后缀(最低 - 最高) |
---|---|
四、 | A B C D |
三 | A B C D |
二 | A B C D |
我 | A B C D |
员工梯队:(从高到低)
梯队 | 后缀(最高-最低) |
---|---|
我 | 一/乙 |
二 | 一/乙 |
三 | 一/乙 |
四、 | 一/乙 |
V | A |
梯队员工示例:
Jane Doe, Group IIIa, Echelon Va
非梯队员工示例:
Jane Doe, Group IIb
问题:
正如你在上面看到的有梯队和非梯队员工,我需要根据员工组和带梯队的员工组来一次性支付差旅费。因为业务规则是,没有梯队的员工与有梯队的员工有不同的一次性付款成本。我对如何将这两个属性引用到存储旅行费用的一次性支付表感到困惑。
例如:
第 III 组员工,Echelon Va
前往 foobar 国家/地区的旅行一次性付款:200 美元
Group III 员工,非梯队员工
前往 foobar 国家/地区的旅行一次性付款:150 美元
我为两个实体制作了联结表,因为 IIIa(min) - IIIb(max) 组的规则员工可以分配给 Va 梯队,而 IIIb(min) - IIIc(max) 组的规则员工可以分配给梯队 IVa 只是为了这个例子. 但是使用这种设计,如果员工属于 II 组及以下组,不能分配到任何梯队,group_echelon.echelon
FK 是否NULL
有效?,因为即使员工没有梯队,我仍然需要参考group_echelon.id
一次性付款或者我应该在其中创建非梯队价值吗echelon table
?或者可以给我一些启示以正确进行。
最后是根据他们有组或组加梯队来获得包干付款,我应该参考group_echelon.id
每个组/梯队的包干付款吗?
谢谢。
Employee 和 Lumpsum 都应该对 Group 和 Echelon 都有 FK。
但是 Eschelon 的两个 FK 都应该可以为空。这样您就可以同时拥有一个 Employee 行和一个 Lumpsum 行以及一个 Group 和 null Eschelon。