2011-10-06 5 views
0

오픈 의료의 경우 다음과 같은 부분적인 데이터 모델 및 해당 보험을 고려 고유 식별자가없는 일대 다 관계 :데이터 모델링 :

**Cases** 
CaseId (PK) 
PatientId (FK) 
CaseNote 
... 

**CaseInsuranceProfiles** 
CaseId (PK)(FK) 
InsuranceId (PK)(FK) 
InsuranceType {Primary, Secondary, Tertiary} (PK)(FK) 
EffectiveDate 

**Insurances** 
InsuranceId (PK) 
InsuranceName 
InsuranceAddress 
InsuranceCity 
... 

불행하게도,이 모델은 문제를 제시한다. 케이스가 각 보험 및 보험 유형의 인스턴스에 대해 중복 기록을 가질 수 없습니다. 예를 들어 문제의 케이스가 Insurance A의 두 가지 기본 보험 정책을 가지고있는 경우 (일부 주에서 허용되는 경우). 내가 데이터를 정상화하고 복합 키되지 않습니다 CaseInsuranceProfiles 테이블에 대한 고유 식별자를 제공하기위한 노력의 일환으로 다음 모델을 정제 한 : 그러나

**Cases** 
CaseId (PK) 
PatientId (FK) 
CaseNote 
... 

**CaseInsuranceProfiles** 
InsuranceProfileId (PK) 
CaseId (FK) 
InsuranceId (FK) 
InsuranceType {Primary, Secondary, Tertiary} 
EffectiveDate 

**Insurances** 
InsuranceId (PK) 
InsuranceName 
InsuranceAddress 
InsuranceCity 
... 

을,이 모델은, 즉 새로운 모델을 제시하는 내 대리 키 (InsuranceProfileId)는 여전히 각 레코드를 고유하게 식별하지 않습니다. 누구든지 각 레코드를 올바르게 고유하게 식별 할 수 있도록 데이터 모델을 변경하도록 권장 할 수 있습니까?
참고 :

**CaseInsuranceProfiles** 
InsuranceProfileId (PK) 
CaseId (FK) 
InsuranceId (FK) 
PrimaryInsurance 
SecondaryInsurance 
TertiaryInsurance 
EffectiveDate 

그러나,이 날 여러 1 차, 2 차 또는 3 차 보험을 고려하는 것을 허용하지 않습니다 나는 유사한 테이블을 만들 수 있다는 것을 알고 있습니다. 또한 제 목표는 각 사례의 보험 프로필을 확인하는 것입니다. 즉, 특정 사례에 대한 모든 보험을 표시하는 데 하나의 키를 사용할 수 있기를 바랍니다. 미리 감사드립니다!

+0

당신이 보험 A로부터 두 가지 기본 보험이있는 경우는 어떻게 구별하시는 거죠? 정책 번호? 종이 색깔? –

+0

정책 번호를 사용하는 것이 가장 쉽습니다. 감사! – TelJanini

답변

2

대해 :

**CaseInsuranceProfiles** 
InsuranceProfileId (PK) 
CaseId (FK0)(AK) 
InsuranceId (FK1)(AK) 
InsurancePolicyId (FK1)(AK) 
CaseEffectiveDate 

**InsurancePolicies** 
InsuranceId (PK)(FK) 
InsurancePolicyId (PK) 
InsuranceType {Primary, Secondary, Tertiary} 
0

비즈니스 관점에서 각 보험의 우선 순위를 알고 싶습니다. 어떤 방침으로 먼저 지불해야합니까? 우선 순위 필드를 추가하고 키의 해당 부분을 만들 것입니다.

관련 문제