sql >> Database teknologi >  >> RDS >> Oracle

Læge planlægning database design

EDIT:Jeg misforstod spørgsmålet.

Dit design er fint - der er ikke noget galt med at have flere rækker i en tabel, der afspejler flere lige. Den eneste forfining, du måske overvejer, er, at AvailableFrom og AvailableTo skal være datetime-værdier i stedet for tid, så du kan fjerne "dato"-kolonnen. Dette hjælper dig med at håndtere tilgængelighed, der spænder over midnat.

Resten af ​​svaret vedrører IKKE spørgsmålet - det er baseret på en misforståelse af problemet.

For det første skal du vide, hvornår en læges arbejdstid er; dette kan være enkelt (9 - 5 hver dag) eller komplekst (9-5 mandage, ikke tilgængelig tirsdage, 9-12:30 onsdag - fredag). Du skal muligvis også registrere pausetider - for eksempel frokost - hver dag, så du ikke planlægger en aftale over frokosten; Jeg går ud fra, at forskellige læger holder pauser på forskellige tidspunkter.

Dernæst, i stedet for at registrere "tilgængelighed", vil du sandsynligvis gerne optage "aftaler" for hver dag. En læge er tilgængelig, når deres tidsplan siger, at de arbejder, og når de ikke har en planlagt tid.

Så dit skema kan være:

Doctors
--------
DoctorID
....

DoctorSchedule
------------
DoctorID
DayOfWeek
StartTime
BreakStartTime
BreakEndTime
EndTime

DoctorAppointment
----------------
DoctorID
Date
AppointmentStartTime
AppointmentEndTime


  1. Omdøb en kolonne i MySQL

  2. Vil et sammensat indeks med en anden kolonne med lav kardinalitet påvirke ydeevnen nok til, at det bør bruges?

  3. At finde det nærmeste numeriske match i en database til det, en bruger har indtastet i php

  4. WAMP-server i grøn, men få kun 404