对于此应用程序,员工需要能够在一周中的每一天开始和结束时进行设置。他们可以选择每 1、2 或 4 周重复一次开始/结束。例如,我每周一早上 9 点开始工作,下午 2 点结束。通过像这样的简单重复,我正在考虑拥有 3 个,也许是 2 个模型(用于非规范化):
Event
- start: datetime
- end: datetime
- type: int (appointment, time off, cancelled, etc)
- date: date (useful?)
- staff_id: int
- customer_id: int
(more, redacted)
DayTemplate
- active_start: datetime
- active_end: datetime
- staff_id: int
Day
- weekday: int
- start: datetime
- end: datetime
- recurrence: int (0: none, 1: once/mo, 2: other week, 4: every week)
- day_template_id: int
这个想法是现在设置了参数,因此客户可以在有空时进入并预订员工(在特定的时间段,例如上午 9 点、上午 10 点 15 分、11 点 30 分——以允许设置休息时间)。对于日程中的任何一天,您都可以轻松查询该员工活动的 DayTemplate。然后,工作人员可以通过将活动预订为“休假”来进一步调整日程安排,以进行微调控制。此外,我正在考虑将 Day 非规范化为 DayTemplate - 我知道它看起来很难看,但架构永远不会改变,性能优势是否值得?这足够灵活吗?
感谢反馈。我将在 Rails 中构建它。