Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Bác sĩ lập lịch thiết kế cơ sở dữ liệu

CHỈNH SỬA:Tôi đã hiểu sai câu hỏi.

Thiết kế của bạn ổn - không có gì sai khi có nhiều hàng trong một bảng phản ánh nhiều tầng. Sự sàng lọc duy nhất mà bạn có thể xem xét là có sẵn AvailableFrom và AvailableTo là các giá trị ngày giờ thay vì thời gian, vì vậy bạn có thể xóa cột "ngày tháng". Điều này giúp bạn giải quyết tình trạng sẵn có kéo dài đến nửa đêm.

Phần còn lại của câu trả lời KHÔNG liên quan đến câu hỏi - nó dựa trên sự hiểu lầm về vấn đề.

Thứ nhất, bạn cần biết giờ làm việc của bác sĩ; điều này có thể đơn giản (9 - 5 hàng ngày) hoặc phức tạp (9 - 5 Thứ Hai, không có Thứ Ba, 9 - 12:30 Thứ Tư - Thứ Sáu). Bạn cũng có thể cần ghi lại thời gian giải lao - chẳng hạn như ăn trưa - vào mỗi ngày, vì vậy bạn không sắp xếp một cuộc hẹn qua bữa trưa; Tôi giả định rằng các bác sĩ khác nhau sẽ nghỉ giải lao vào những thời điểm khác nhau.

Tiếp theo, thay vì ghi lại "tính khả dụng", bạn có thể muốn ghi lại "cuộc hẹn" cho mỗi ngày. Một bác sĩ có mặt khi lịch trình của họ cho biết họ đang làm việc và khi họ không có lịch hẹn.

Vì vậy, giản đồ của bạn có thể là:

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. Chọn đối tượng Oracle với bộ sưu tập các đối tượng mà không cần thu thập số lượng lớn

  2. .NET Core 2 + System.Data.OracleClient. Ký tự Trung Quốc không hoạt động

  3. Làm thế nào để lưu dữ liệu unicode vào oracle?

  4. Kiểm toán trong Oracle

  5. cách gọi hàm trong oracle