EDIT:ik begreep de vraag verkeerd.
Je ontwerp is prima - er is niets mis met het hebben van meerdere rijen in een tabel die meerdere evens weerspiegelen. De enige verfijning die u zou kunnen overwegen, is dat AvailableFrom en AvailableTo datetime-waarden zijn in plaats van tijd, zodat u de kolom "date" kunt verwijderen. Dit helpt u om te gaan met beschikbaarheid tot middernacht.
De rest van het antwoord heeft GEEN betrekking op de vraag - het is gebaseerd op een verkeerd begrip van het probleem.
Ten eerste moet u weten wanneer de werktijden van een arts zijn; dit kan eenvoudig zijn (9 - 5 elke dag), of complex (9-5 maandagen, niet beschikbaar op dinsdag, 9-12:30 uur woensdag - vrijdag). Het kan ook zijn dat u elke dag pauzetijden - bijvoorbeeld lunch - moet vastleggen, zodat u geen afspraak tijdens de lunch plant; Ik neem aan dat verschillende artsen hun pauzes op verschillende tijdstippen nemen.
Vervolgens, in plaats van "beschikbaarheid" vast te leggen, wil je waarschijnlijk "afspraken" voor elke dag vastleggen. Er is een arts beschikbaar wanneer hun schema zegt dat ze werken en wanneer ze geen geplande afspraak hebben.
Uw schema zou dus kunnen zijn:
Doctors
--------
DoctorID
....
DoctorSchedule
------------
DoctorID
DayOfWeek
StartTime
BreakStartTime
BreakEndTime
EndTime
DoctorAppointment
----------------
DoctorID
Date
AppointmentStartTime
AppointmentEndTime