Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Desain database penjadwalan dokter

EDIT:Saya salah mengerti pertanyaannya.

Desain Anda baik-baik saja - tidak ada yang salah dengan memiliki beberapa baris dalam tabel yang mencerminkan beberapa genap. Satu-satunya penyempurnaan yang mungkin Anda pertimbangkan adalah memiliki AvailableFrom dan AvailableTo sebagai nilai datetime, bukan waktu, sehingga Anda dapat menghapus kolom "date". Ini membantu Anda menangani ketersediaan yang mencakup tengah malam.

Sisa jawaban TIDAK berhubungan dengan pertanyaan - ini didasarkan pada kesalahpahaman tentang masalah ini.

Pertama, Anda perlu tahu kapan jam kerja dokter; ini mungkin sederhana (9 - 5 setiap hari), atau kompleks (9-5 Senin, tidak tersedia Selasa, 9-12:30 Rabu - Jumat). Anda mungkin juga perlu mencatat waktu istirahat - makan siang, misalnya - setiap hari, sehingga Anda tidak menjadwalkan janji temu saat makan siang; Saya berasumsi dokter yang berbeda akan mengambil istirahat mereka pada waktu yang berbeda.

Selanjutnya, daripada merekam "ketersediaan", Anda mungkin ingin merekam "janji" untuk setiap hari. Seorang dokter tersedia ketika jadwal mereka mengatakan mereka bekerja, dan ketika mereka tidak memiliki janji yang dijadwalkan.

Jadi, skema Anda mungkin:

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. Bagaimana saya bisa menyimpan byte di Oracle Varchar2, dan ASCII diperlakukan sebagai teks?

  2. Subquery dan multi tabel

  3. kueri Oracle untuk membandingkan semua baris yang memiliki id yang sama dalam sebuah tabel

  4. Ubah tabel, tambahkan kolom / ORA-00984:kolom tidak diizinkan di sini PLSQL

  5. Bagaimana cara menggunakan parameter dalam klausa 'nilai di mana di ...'?