考虑以下开放医疗案例的部分数据模型及其相应的保险:
**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
...
不幸的是,这个模型存在问题。它不允许案件具有每种保险和保险类型的实例的重复记录。例如,如果案件中有两个来自保险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
但是,这不允许我考虑多个一级,二级或三级保险。此外,我的目标是确定每个案例的保险概况,换句话说,我希望能够使用一个键来显示特定案例的所有保险。提前谢谢!
答案 0 :(得分:2)
怎么样:
**CaseInsuranceProfiles**
InsuranceProfileId (PK)
CaseId (FK0)(AK)
InsuranceId (FK1)(AK)
InsurancePolicyId (FK1)(AK)
CaseEffectiveDate
**InsurancePolicies**
InsuranceId (PK)(FK)
InsurancePolicyId (PK)
InsuranceType {Primary, Secondary, Tertiary}
答案 1 :(得分:0)
从商业角度来看,我想知道每项保险的优先顺序,即。哪种政策先付款。我会添加一个优先级字段并将其作为密钥的一部分。