I am a new ASP.NET developer with a good knowledge in Database Design. I am developing an intranet web-based booking system for my company and now I am struggling in designing the following required two requirements and one optional requirement:
Required Requirements:
- The Event may have more than one time slot.
- The user must be able to register in one of these time slot only.
Optional Requirement:
- The user must be listed under a waiting list if there is no
available seats in the event.
My simple database design is:
Users Table: UserID, Name, Department
Admins Table: UserID
Event Table: ID, Title, Description, Start_Date, End_Date, Start_Time, End_Time, Location,NumberOfSeats, isActive
BookingDetails Table: BookingID, EventID, UserID
So what I should add to my database design to accommodate at least the required requirements?
Event Time Slots Table: TimeSlotID, EventID, Date, StartTime, EndTime
BookingDetails Table: BookingID, EventID, UserID, TimeSlotID
Create Unique Index on BookingDetails (EventID, UserID)