在 ER 图中,我将如何建模两个多对多关系
FACILITY
Facility_ID
Name
etc
PHYSICIAN
Physician_Id
Name
etc
PATIENT
Patient_Id
Name
etc
M:N - 一个设施可以配备许多医生,一个医生可以受雇于许多设施 MN - 一个患者可以由多个医生治疗,一个医生可以治疗多个患者'
在 ER 图中,我将如何建模两个多对多关系
FACILITY
Facility_ID
Name
etc
PHYSICIAN
Physician_Id
Name
etc
PATIENT
Patient_Id
Name
etc
M:N - 一个设施可以配备许多医生,一个医生可以受雇于许多设施 MN - 一个患者可以由多个医生治疗,一个医生可以治疗多个患者'
这是一个常见的关系设计问题。为了解决这个问题,您创建所谓的联结表或关联实体。
以下是一些有用的解释和示例,可以帮助您与您的相关:
http://en.wikipedia.org/wiki/Associative_Entities
http://en.wikipedia.org/wiki/Junction_table
在您的情况下,您可能会:
Facilty_Physican
----------------
Facility_ID
Physician_Id
和
Physican_Patient
----------------
Physician_Id
Patient_Id
您可能还会发现,有时在数据模型优化中并且根据关系的平衡,一些非规范化联结表。
多对多关系的建模是通过在两个相关表之间制作一个表来完成的,从而将tit分成两个一对多关系。因此:一个 Facility_Physician 表,它有两列都是外键。第一个 FK 引用 Facility_ID,第二列引用 Physician_Id。Patient_Physician 表也是如此。