I'm working on a design for a continuing education training database. Users will register for a CE course/event that could be one day or multiple days. Courses are taught multiple times per year.
The part I wanted some review on is the calendar part of the DB.
Here is the design criteria:
- Multiple events taught on varying schedules throughout the year.
- Classes/Events can be part of a day, one day or multiple days.
- Times can be different across days for the same Instance. Ex. "Summer xyz Training" held 9am-5pm Monday, 9-noon Tuesday, etc.
Here is my design for this part of the DB so far:
Class, event or course... can be scheduled multiple times... taught at various times, dates, and locations repeating throughout the year.
Event_ID- Could be called
Class_ID. Could be class or event.
I went with
Event_IDto handle either.
Name- Ex. "xyz Training"
Objectives- yes - hidden
Outline- yes - hidden
Duration_hours( Break up by Class Schedule )
Notes- Hidden from user
Instance of an event. Can be across multiple days.
Event_Instance_Schedule for the Instance must add up to
Location_ID- Tie to Location table for where (could be physical or on line)
Description- Ex. "Summer xyz training"
Block of time as part of
Event_Instance that adds to total
Start_Date_Time- Ex. "1/1/2017 8am"
End_Date_Time- Ex. "1/1/2017 5pm"
I don't really need to setup Google Calendar type re-occurrence, thankfully. My thinking was that the user chooses a class, gives that instance a title like "Summer xyz training", and then schedules times until they reach the
I think it's fairly simple. Just looking for feedback or "have you thought about this... " feedback, or "gotchas" I'm not considering.
I have reviewed a number of event / class schedule DB designs, but none quite fit what I'm doing...too much or too little. The question is meant to be at a high level regardless of the DB technology (MySQL, SQL Server, etc.)
The DDL is the easy part in my mind, but I should probably do that based on a good design. I just wondered if anyone had done an Event DB kind of thing before and if they had feedback based on my initial concept.