ERダイアグラムで、2つの多対多の関係をどのようにモデル化するか
FACILITY
Facility_ID
Name
etc
PHYSICIAN
Physician_Id
Name
etc
PATIENT
Patient_Id
Name
etc
M:N-施設が多くの医師を配置でき、医師が多くの施設に雇用されている場合MN-患者が多くの医師によって治療され、医師が多くの患者を治療できる場合
ERダイアグラムで、2つの多対多の関係をどのようにモデル化するか
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
また、データモデルの最適化や、関係のバランスによっては、ジャンクションテーブルが非正規化されることもあります。
多対多の関係のモデル化は、2つの関連するテーブルの間にテーブルを作成し、これによってtitを2つの1対多の関係に分割することによって行われます。したがって、両方とも外部キーである2つの列を持つFacility_Physicianテーブル。最初のFKはFacility_IDを参照し、2番目の列はPhysician_Idを参照します。同じことがPatient_Physicianテーブルにも当てはまります。