ERD的关系模型

时间:2017-11-05 23:21:36

标签: erd

我有一个ERD,我已经开发了关系模型。我只是想知道我的关系模型中是否有任何错误。我在下面列出了关系模型。我有一张ERD的照片。

PHYSICIAN (DRID (PK), NAME, SPECIALTY, PRESCRIPTION(FK))
PRESCRIPTION (PRESCRIPTIONID(PK), DRID(FK), DRUGID(FK), PATIENTID, DRUGDOSAGE)
DRUG (DRUGID(PK), DRUGNAME, DRUGMANU, DRID)
ORDERS (DRUGID(PK), PRESCRIPTIONID(FK))

CLICK TO VIEW ERD

1 个答案:

答案 0 :(得分:0)

我可以在您的ERD中看到一些问题:

  • 为什么Prescription有一个双边框?它不是一个弱的实体集,它由它自己的属性来识别。
  • 不是将Patient ID显示为Prescription的属性,而是在PrescriptionPatient之间绘制关系。
  • 三元关系Orders允许不同的医生在同一处方上开药。两个二元关系(从PrescriptionPhysician的多对一关系,以及PrescriptionDrug之间的多对多关系)应该更好。事实上,你的关系模型几乎已经这样做了。
  • 每个处方只应记录一个Drug Dosage吗?我会将此属性放在PrescriptionDrug之间建议的二元关系上。

关于你的关系模型:

  • 如果您在PRESCRIPTION中加入PHYSICIAN,则会产生功能依赖DRID -> PRESCRIPTION,换句话说,每位医生都会与一个处方相关联。这与PRESCRIPTIONID -> DRID表中的Prescription无关,它恰当地表示了我上面建议的二元关系。
  • 如果您在DRUGID中加入PRESCRIPTION,则会产生功能依赖PRESCRIPTIONID -> DRUGID,换句话说,每个处方都与单一药物相关联。这与ORDERS表中药物和处方之间的关联无关。
  • 如果您在DRID中加入DRUG,则会产生功能依赖关系DRUGID -> DRID,换句话说,每种药物都与单个医生相关联。处方中每种药物的医生可以通过PRESCRIPTIONORDERS来确定,无需尝试按药物记录。
  • ORDERS应使用复合主键(DRUGID, PRESCRIPTIONID)来表示多对多关系。目前,每种药物都可以与一个处方相关联。

我希望有所帮助。

相关问题