0

この設計について助けが必要です。診断は、証拠またはテスト結果、またはその両方に基づくことができます。私は別の証拠表 (例: 咳、薬は他の検査なしで処方できます) とテスト表 (例: 血液検査) を持っています。診断テーブルですべてのシナリオに対処する必要があります (証拠のみに基づいて、テスト結果のみに基づいて、証拠とテスト結果の両方に基づいて)。外部キーですが、これを持つことは、常に両方の値を提供しなければならないことを意味しますが、そうではありません.何かアドバイスはありますか?

4

1 に答える 1

1

外部キーは null にすることができます。

おそらく次のようなクエリが必要になるでしょう

select patients.name, diagnoses.id, evidence.text, tests.text
from patients inner join diagnoses on diagnoses.patient_id = patients.id
left join evidence on diagnoses.evid_id = evidence.id
left join tests on diagnoses.test_id = tests.id
where ....

左結合を使用すると、診断がエビデンス テーブルまたはテスト テーブルにリンクされているかどうか (またはどちらにもリンクされていないか) に関係なく、常に結果セットを取得できます。

于 2012-10-20T18:38:25.967 に答える