2014-05-11 2 views
0

약한 엔티티의 모델링을 이해하는 데 문제가 있습니다. 내 이해는 약한 존재가 강한 존재와 관련하여 만 존재할 수 있다는 것입니다 (즉, 강한 존재에 의해 소유 됨). 예를 들어 환자 및 방문 엔티티가있는 경우 환자는 강하고 방문은 약할 것입니다. 내가 이해할 수없는 것은 환자의 PK가 방문의 PK에 속해야하는 이유입니다. 어딘가에 나는 약한 엔티티가 강력한 엔티티의 PK를 포함하지 않고는 PK를 가질 수 없다는 것을 읽었습니다. 왜 ? 은 단순히 다음과 같은 관계형 스키마약한 엔티티 모델링 데이터베이스

Patient(Patient_ID(PK),name,surename) 
Visit(Visit_ID(PK),date,description,Patient_id(FK)) 

이 그에 관계 무결성을 적용 할 수 없습니다? 또는 꼭 가져야합니다.

Patient(Patient_ID(PK),name,surename) 
Visit(Visit_ID(PK),Patient_id(PK),date,description) ? 

첫 번째 대답 이후에 편집하십시오.

는 어쩌면 그것은 다음과 같은 상황에 대한 무엇 :-(나쁜 예인가? 나는 책과 모듈 당신은 아마 더 이런 식으로 뭔가를해야 모두 약한

Course(Course_ID(PK),name) 
Module(Module_ID(PK),Course_id(FK),name) 

Author(Author_ID(PK),name,surname) 
Book(Book_ID(PK),Author_ID(FK),title) 

답변

2

있다고 생각합니다.

Patient(Patient_ID(PK), name, surname) 
Visit(Patient_id(PK, FK), start_time(PK), description) 

방문 ID 번호는 데이터베이스 디자인의 관점에서 유용하지 않으며 중복되는 데이터의 가능성을 높입니다 (예 :

01).
Visit(Visit_ID(PK), Patient_id(PK), date, description) 

은 다음과 같은 행을 허용합니다.

 
    visit_id patient_id date  description 
    -- 
    1   1   2014-05-09 Office visit 
    2   1   2014-05-09 Office visit 
    3   1   2014-05-09 Office visit 
    4   1   2014-05-09 Office visit 

은 (당신이 게시 두 구조는 같은 문제가 있습니다.)

+0

감사합니다. 내 질문에 추가 한 예제는 무엇입니까? 어쩌면 Patient - Visit는 좋지 않은 예제 선택이었습니다. – tagomago

+0

아니요, Patient - Visit는 visit_id 속성을 버린 후 좋은 예입니다. 그것은 약점이 무엇인지에 대해 정확하게 * 정확하게 * 있습니다. –

관련 문제