提问人:Stuart Pinfold 提问时间:3/24/2023 更新时间:3/24/2023 访问量:27
获取分配给角色的人数并防止设置较低的人数
Getting number of people assigned to a role and preventing setting a lower number
问:
我正在开发一个数据库,我们在其中管理工作和自由职业者,他们拥有个人工作所需的技能,然后将他们分配给这些工作。例如,包含一天作业和多日作业示例(可能重叠)的作业数据库:
作业 ID | 作业名称 | 工作开始 | 作业结束 |
---|---|---|---|
56 | 在伦敦的一些工作 | 2023-04-15 | 2023-04-17 |
57 | 伯明翰的一些工作 | 2023-04-23 | 2023-04-23 |
58 | 曼彻斯特的一些工作 | 2023-04-23 | 2023-04-25 |
在单独的表中,我们有角色:
角色 ID | 角色名称 |
---|---|
13 | 司机 |
32 | 工程师 |
34 | 技工 |
在第三张表格中,我们有自由职业者:
自由职业者ID | 自由职业者姓名 |
---|---|
22 | 乔·博格斯 |
23 | 玛丽·史密斯 |
24 | 莫·穆罕默德 |
25 | 凯西·罗杰森 |
26 | 丽贝卡·格兰特 |
然后,我们可以分配每项工作所需的每种技能的数量:
JobRoleID | 工作角色工作 | 工作角色角色 | JobRoleQuantity |
---|---|---|---|
4 | 56 | 34 | 2 |
5 | 56 | 32 | 1 |
6 | 57 | 32 | 1 |
7 | 57 | 13 | 1 |
8 | 58 | 32 | 1 |
8 | 58 | 13 | 1 |
因此,我们需要:
- 伦敦有2名机械师和1名工程师
- 1 工程师 和 1 司机 在 伯明翰
- 曼彻斯特有1名工程师和1名司机
最后,我们将自由职业者分配到工作岗位上。至关重要的是,我们可能不需要所有日期的所有角色:
工作自由职业者ID | 工作自由职业者工作 | 工作自由职业者日期 | 工作自由职业者角色 | 工作自由职业者自由职业者 |
---|---|---|---|---|
101 | 56 | 2023-04-15 | 32 | 22 |
102 | 56 | 2023-04-16 | 34 | 22 |
103 | 56 | 2023-04-17 | 34 | 23 |
104 | 57 | 2023-04-23 | 13 | 24 |
105 | 57 | 2023-04-23 | 32 | 26 |
106 | 58 | 2023-04-23 | 32 | 25 |
107 | 58 | 2023-04-24 | 32 | 25 |
108 | 58 | 2023-04-25 | 32 | 22 |
所以我们有:
- 在伦敦,Joe Bloggs 于 15 日担任工程师,然后 Joe Bloggs 于 16 日担任机械师,然后 Mary Smith 于 17 日担任机械师
- 在伯明翰,Mo Mohammad 担任司机,Rebecca Grant 担任工程师,均在 23 日
- 在曼彻斯特,Casey Rogerson 于 23 日和 24 日担任工程师,然后 Joe Bloggs 于 25 日担任工程师
正如你所看到的,这个系统可以很灵活,因为有时我们需要所有日子的所有角色,有时在某些日子里只需要一个角色,而在其他日子里不需要,有时在几天的组合中需要角色的组合。
问题
现在我需要一些逻辑,以便角色数量不会减少到实际分配的数量以下。
在上面的示例中,唯一应该能够“删除”(设置为零)的是曼彻斯特的驱动程序,因为它尚未分配。
再举一个例子,如果我在伯明翰申请了 2 名工程师,分配了 Rebecca 并将另一个插槽暂时留空,然后决定我不需要第二名工程师,我应该只能将其减少到 1 名,而且不少于。
我可以使用什么数据库逻辑来获取为每个角色分配的人数,无论是不同的人还是同一个人,以及日期是否重叠,以便在编辑所需的工作角色时可以在字段上设置值?min
<input type="number">
答: 暂无答案
评论