我在理解基数方面遇到了很大的麻烦。
假设有医生和他可以只对一名患者进行心脏手术。肯定有很多医生和很多病人,但模型应该是这样的吗?
PACIENT-|----------|- DOCTOR meaning 1:1?
难道不需要反射(reflect)医生多,病人多吗?或者这描述了两个实际实例之间的关系?
另一个例子:
医院进行一项实验,可以让许多患者进行药物试验。每个试验只测试一种药物,并且没有一个患者可以出现在多个试验中。
TRIAL |- ------<-PATIENT
(多对一 - 允许更多患者参加试验)PATIENT|------|-DRUG
(如果一名患者只能服用一种药物,则为 1:1)?但是如何表明同一患者不能出现在任何其他试验中?或者它是否隐含在 Trial 和 Patient 之间的关系中,其中 Trial 一侧有 1?
最佳答案
就实际实体表示而言,它的工作方式如下:
有一个对应的表,其他的会包含在
相应的记录。
示例 :1 名患者只有 1 张病床,并且
1 张病床只能有 1 名患者。在这种情况下,医院
床位应由一列(床位号)或一组
患者表中的列。
第一个(1)实体之间的关键关系(这将是
主键实体)和第二(M)实体。
示例 : 1 名患者只能服用 1 种药物,但许多患者可以服用 1 种药物。在这种情况下, DrugId 将是Patients 表中的外键。
技术是创建一个 关联表 它将包含
两个外键,一个来自每个实体,可能还有其他一些
列。
示例 : 1 个医生可以在很多医院和 1 个医院工作
雇用了许多医生。因此,我们应该有一个关联表,
说 MedicalJobs,它将有外键 HospitalId 和 DoctorId
可能还有薪水、JobId 等。
关于您的 Trial - Patient 问题,如果一个 Trial 有很多患者,但一个患者只能参加一个 Trial,那么它是一个 1 对多 Trial-Patients 关系,因此,您只需要 Patients 表中的外键 TrialId 即可。
我希望这能清除它。如果你需要额外的解释,请在这篇文章中发表评论。
关于database-design - 了解基数它 ERD 模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20566077/