理解它的基数ERD模型

时间:2013-12-13 12:04:00

标签: database-design entity-relationship erd

理解基数时我遇到了很大麻烦。

让我们说医生和他只能对一名病人进行心脏手术。当然有很多医生和很多病人,但模型应该是这样吗?

PACIENT-|----------|- DOCTOR   meaning 1:1?

是否不需要反映有很多医生和很多患者?或者这描述了两个实际实例之间的关系?

另一个例子: 医院开展了一项实验,可以让许多患者参加药物试验。每项试验只测试一种药物,没有患者可以参加多项试验。

TRIAL |- ------<-PATIENT(许多人 - 允许更多患者参加试验)

PATIENT|------|-DRUG(1:1,如果一名患者只能服用一种药物)?

但如何表明同一患者不能出现在任何其他试验中?或者,试验方面有1个试验与患者之间的关系是隐含的吗?

1 个答案:

答案 0 :(得分:7)

就实际的实体表示而言,它的工作原理如下:

  • 如果您的 1对1 关系,那么只有一个实体会 有一个相应的表,另一个将被包括在内 相应的记录 示例:1患者只有1张病床,并且 1张病床上只能有1名病人。在那种情况下,医院 床应由柱子(床号)或集合表示 患者表中的列。

  • 如果你有 1到很多的关系,那么你创建一个外国人 第一个(1)实体之间的关键关系(将是 主要密钥实体)和第二个(M)实体 示例:1患者只能服用1种药物,但许多患者可服用1种药物。在这种情况下,DrugId将成为Patient表中的外键。

  • 最后,在多对多关系的情况下,典型的 技术是创建一个包含的关联表 两个外键,每个实体一个,也许还有其他一些 列。
    示例:1医生可以在多家医院和1家医院工作 聘请了许多医生。因此,我们应该有一个关联表, 说医疗工作,将有外键HospitalId和DoctorId 也许是Salary,JobId等。

关于您的试验 - 患者问题,如果一项试验有很多患者,但患者只能参加一次试验,那么这是1对多试验患者的关系,因此,您所需要的只是一个外键试用版患者表。

我希望这清除它。如果您需要其他说明,请对此帖发表评论。