Oracle
 sql >> база данни >  >> RDS >> Oracle

Дизайн на база данни за планиране на лекар

РЕДАКТИРАНЕ:Грешно съм разбрал въпроса.

Вашият дизайн е наред - няма нищо лошо в това да имате няколко реда в таблица, отразяващи множество дори. Единственото уточнение, което можете да обмислите, е AvailableFrom и AvailableTo да бъдат стойности за дата и час, а не час, така че можете да премахнете колоната "date". Това ви помага да се справите с наличността, обхващаща полунощ.

Останалата част от отговора НЕ се отнася до въпроса - той се основава на неразбиране на проблема.

Първо, трябва да знаете кога е работното време на лекаря; това може да е просто (9 - 5 всеки ден) или сложно (9-5 понеделник, не е налично вторник, 9-12:30 сряда - петък). Може също така да се наложи да записвате часове за почивка - обяд, например - всеки ден, така че да не планирате среща по време на обяд; Предполагам, че различните лекари ще си вземат почивките по различно време.

След това, вместо да записвате „наличност“, вероятно искате да записвате „срещи“ за всеки ден. Лекарят е на разположение, когато графикът им казва, че работят, и когато нямат уреден час.

Така че вашата схема може да бъде:

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

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате изчислена колона за изчисляване на друга колона в същия изглед

  2. Свързване към Oracle чрез Oracle.ManagedDataAccess

  3. Набор за тестове за настройка на AOL/J

  4. Въпроси за начинаещи в SQL oracle

  5. Защо времето за изпълнение на съхранената процедура на Oracle се увеличава значително в зависимост от това как се изпълнява?