我正在为射箭比赛拍摄建立一个数据库。其中一张桌子为工作的志愿者提供轮班工作。
它目前看起来像这样:
+-------+---------+--------+---------+-------+-----+
| JobID | ShiftID | UserID | EventID | Hours | Day |
+-------+---------+--------+---------+-------+-----+
| 10 | 9 | 1125 | 6 | NULL | 1 |
| 11 | 9 | 0 | 6 | NULL | 1 |
+-------+---------+--------+---------+-------+-----+
JobID 链接到工作,即注册、厨房。
ShiftID 链接到轮班时间,即 7-9 小时(应事件所有者的请求,因为轮班时间可能会很长,所以小时数在那里)。
UserID 链接到志愿者...
EventID 链接到特定事件。
对于跨越多天的事件,Day 是事件的日期。
为事件填充条目,然后添加用户。这目前允许在连接列(JobID、ShiftID、UserID、EventID)上放置唯一约束。
但是,活动所有者现在希望能够在一个活动中同时进行多个轮班。用户注册后,条目将是唯一的。
处理这个问题的正确方法是什么?这些是我想到的解决方案,但没有一个是正确的:
- 做出新的转变。
- 做一份新工作。
- 为待定的工作班次制作一个新表。
- 删除表上的唯一约束。
- 添加另一列来处理重复的班次。