2009-09-23 4 views
1
 
I'm doing a conceptual model in Sybase PowerDesigner. 
The restriction is following: 
One doctor can work in only one office at a time during his working time (shift). 

I guess Doctor - Office relationship should be many-many, but what about 
time restriction ("during his working time")? 
Should it be a new table SHIFT? 

So I guess I should have four tables (DOCTOR, OFFICE, SHIFT and OFFICE SCHEDULE). 
OFFICE SCHEDULE should be a table connecting all 3 other entities 
and should have composite primary key (id_doctor, id_office, id_shift)? 
+0

어떤 데이터베이스를 사용 하시겠습니까? 이 방법에 접근하는 방법이 바뀔 수 있습니다. –

+0

또한 OFFICE SCHEDULE은 OFFICE와 1 : M (또는 M : M) 관계입니까? 1 : 1 관계라면 OFFICE SCHEDULE은 OFFICE 테이블의 일부 여야합니다 –

+0

MS SQL 많은 관계 (의사 사무실)를 별도의 테이블로 분리해야 할 때 다소 혼란 스럽지만 그것 사무실 - 사무실 일정은 1이어야합니다 : M –

답변

0

OFFICE SCHEDULE의 기본 키는 (id_office, id_shift) 여야합니다. id_doctor는 테이블에 있어야하지만 기본 키의 일부가 아니어야합니다. 이렇게하면 사무실에 주어진 규칙에 따라 그 사무실의 의사가 한 명만있을 수 있습니다.

물론이 세 가지 모두 기본 키를 구성하는 외래 키 외에도 외래 키입니다.

+0

의사는 동일한 근무 시간 동안 두 개의 사무실에있을 수 있습니다. 사무실 일정 표에는 두 가지 고유 한 제약 조건이 필요합니다. – Mark

1

그 열쇠 (id_doctor, id_office, id_shift)는 의사가 한 근무에서 많은 사무실에서 일할 수있게합니다. 의사와 교대 테이블에 열쇠를 사용해보십시오. 사무실은 종속 필드입니다. 그러나 이것은 한 사무실에서 여러 명의 의사가 근무할 수 있도록 허용 할 수 있는지 확신 할 수 없습니다.

+0

교대 근무 중에 단 한 명의 의사 만 한 사무실에서 근무할 수 있습니다. –

+0

그런 다음 동일한 테이블에 다른 고유 키 id_office, id_shift가 필요합니다. – Mark

0

나는 사무실과 근무 시간을 포함하도록 기본 키를 변경하고 의사에게 별도의 고유 한 제약을 추가하고 함께 이동합니다.

관련 문제