【问题标题】:Relational model for ERDERD 的关系模型
【发布时间】:2017-11-05 23:21:35
【问题描述】:

我有一个 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))

【问题讨论】:

    标签: erd


    【解决方案1】:

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

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

    至于你的关系模型:

    • 如果您在PHYSICIAN 中包含PRESCRIPTION,这将创建一个功能依赖DRID -> PRESCRIPTION,换句话说,每个医生都与一个单一的处方相关联。这独立于Prescription 表中的PRESCRIPTIONID -> DRID,它正确地代表了我上面建议的二元关系。
    • 如果您在PRESCRIPTION 中包含DRUGID,这将创建一个功能依赖PRESCRIPTIONID -> DRUGID,换句话说,每个处方都与一种药物相关联。这与ORDERS 表中药物和处方之间的关联无关。
    • 如果您在DRUG 中包含DRID,这将创建一个功能依赖DRUGID -> DRID,换句话说,每种药物都与一个医生相关联。将PRESCRIPTIONORDERS连接即可确定处方中每种药物的医师,无需尝试记录每种药物。
    • ORDERS 应该使用复合主键 (DRUGID, PRESCRIPTIONID) 来表示多对多关系。就目前而言,每种药物都可以与一个处方相关联。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      相关资源
      最近更新 更多