닥터 스케쥴링 데이터베이스 설계
기능 스케줄링을 위한 아래 사용자 인터페이스를 받았습니다.
저는 의사들이 한 달에 몇 일씩 쓸 수 있는 시간을 정해야 합니다.
이 문제를 처리하기 위한 테이블을 어떻게 만들어야 합니까?
저는 제가 한번쯤은table structure
아래란으로
- 닥터 아이드
- 날짜.
- 사용할 수 있음
- 사용가능로.
하지만 여기서 문제는 같은 의사가 같은 날에 다른 타이밍을 두 번 방문할 경우 2행을 추가한다는 것입니다.
데이터베이스 스키마에 문제가 있습니까? 아니면 더 나은 테이블 설계가 이 작업을 간단하게 수행하는 데 도움이 됩니까?
이 테이블로 의사가 특정 요일과 시간에 이용 가능한지 여부를 감지할 수 있어야 합니다.
테이블 디자인을 가장 잘 개선할 수 있는 방법은 무엇입니까?
편집: 제가 작업하고 있는 화면은 다음을 돕기 위한 것입니다.Hospital Staff to know when the visiting doctor is available
, 그래서 그들은 시간동안 환자를 위한 약속을 예약하거나 다른 가능한 시간을 알려줄 수 있습니다.
편집: 질문을 잘못 이해했습니다.
당신의 디자인은 괜찮습니다. 테이블에 여러 개의 행이 있는 것도 여러 개의 짝수를 반영하는 것도 문제가 없습니다.시간이 아닌 AvailableFrom과 AvailableTo를 날짜 시간 값으로 사용하는 것이 고려할 수 있는 유일한 개선 사항이므로 "날짜" 열을 제거할 수 있습니다.이를 통해 자정까지 가용성을 해결할 수 있습니다.
나머지 대답은 질문과 관련이 없습니다. 문제에 대한 오해에 근거한 것입니다.
첫째, 의사의 근무시간이 언제인지 알아야 합니다. 간단한 경우(매일 9-5시) 또는 복잡한 경우(월 9-5시, 화요일은 불가능, 수-금 9-12:30).또한 의사들이 각기 다른 시간에 휴식을 취한다고 가정할 때, 예를 들어 점심과 같은 휴식 시간을 매일 기록해야 할 수도 있습니다.
다음으로, "가용성"을 기록하는 대신, 각 요일에 대한 "약속"을 기록할 수 있습니다.의사 선생님은 스케줄이 일을 하고 있다고 말할 때, 그리고 예약된 약속이 없을 때 가능합니다.
스키마는 다음과 같습니다.
Doctors
--------
DoctorID
....
DoctorSchedule
------------
DoctorID
DayOfWeek
StartTime
BreakStartTime
BreakEndTime
EndTime
DoctorAppointment
----------------
DoctorID
Date
AppointmentStartTime
AppointmentEndTime
저는 하루를 15분 또는 30분 단위로 나누고, 가능한 각 시간대별로 모든 의사에 대한 기록을 작성하는 것으로 하겠습니다.독특함을 잘 관리해 줍니다.
약속은 하나의 레코드일 수 있으며 이 레코드에서 다루는 시간 간격은 약속 레코드를 참조할 수 있습니다.
예약 시간과 동일한 방식으로 예약 가능 시간을 기록하기 때문에, 이 방법에 대한 쿼리는 일반적으로 매우 간단합니다. 예를 들어, 주어진 길이의 사용 가능한 시간 간격을 쿼리하거나, 예약에 사용되지 않은 의사의 시간의 양 또는 예약의 평균 길이 등을 계산할 수 있습니다.
테이블은 다음과 같습니다.
create table staff_time(
staff_id integer,
time_slot date,
allocation_id)
allocation_id는 약속 또는 교육 시간 또는 기타 할당을 나타내지만 슬롯이 비어 있는 경우에는 아무것도 나타내지 않습니다.
날짜 데이터 유형에는 오라클의 시간 구성 요소가 포함됩니다.
언급URL : https://stackoverflow.com/questions/16669197/doctor-scheduling-database-design
'programing' 카테고리의 다른 글
OLAP 큐브에서 특성이 필터링될 때 Grand Total이 잘못되었습니다. (0) | 2023.09.09 |
---|---|
오류 발생: AttributeConverter를 적용하는 동안 오류가 발생했습니다. 중첩 예외는 javax.persistence입니다.지속성 예외 (0) | 2023.09.09 |
느린 업데이트 쿼리 (0) | 2023.09.09 |
Excel : 값의 클러스터에 대한 조건부 포맷 (0) | 2023.09.09 |
UIColor에서 RGB 추출 (0) | 2023.09.09 |