General scheduling application
Diagram
Schema notes
- actual_shifts (representing a single shift on an actual schedule with a defined date)
- shift_date (date shift will be scheduled)
- job_id
- filled_shifts (representing a single shift on an actual schedule with a defined date)
- start_time (start time of shift on that date)
- end_time (end time of shift on that date)
- volunteer_id
- groupings (a group of schedules that can be displayed together)
- name
- groupings_schedules
- grouping_id
- schedule_id
- jobs (job to be performed during the shift)
- name
- schedule_id
- schedules (for grouping related shifts)
- type (either discrete list of volunteers can take shifts, OR all volunteers can take shifts)
- name
- schedules_volunteers (if the schedule type indicates that a discrete list of volunteers can takes shifts, then a record linking the volunteer to the schedule needs to appear here)
- schedule_id
- volunteers_id
- virtual_shifts (representing a shift or shifts on an "ideal" schedule with no actual date yet attached)
- effective_date (first date this shift can appear on an actual schedule)
- ineffective_date (last date this shift can appear on an actual schedule)
- day_of_week (day of week, 0-6 = sun-sat)
- start_time
- end_time
- slot_count (1-N for use in producing multiple actual shifts, default = 1)
- job_id
- volunteer_id (null allowed, this volunteer will be assigned to slot #1 when actual shifts are generated)
- schedule_id
- volunteers (volunteer specific information could go here -- i.e. first volunteer date, status, reliability index, etc.)
- contact_id
- name (until hooked up to main app when name will come from contacts table)