2016-09-25 2 views
0

私には、患者が特定の病状を持っているかどうか、また両親に特定の病状があるかどうかを質問するフォームがあります。リレーショナルDBにこの情報を保存する最善の方法は何ですか?clinical questionaire relational db

説明のために、単一の病状、糖尿病について考えてみましょう。私は記録する条件が少なくとも25あることに注意してください。

私は2つの可能な解決策を考えましたが、いずれにも満足していません。

1.以下のフィールドを持つ診察台

PatientId  -- integer 
Diabetes  -- boolean 
DiabetesFather -- boolean 
DiabetesMother -- boolean 

ここでの問題は、フィールドの数が爆発していることです。条件ごとに私は3つのフィールドを持っています。

以下のフィールドを持つ

2.条件テーブル

PatientOrPatientParentId -- integer 
Diabetes     -- boolean 

この場合、患者の両親は、擬似患者としてDBに導入されなければなりません。

答えて

1

あり、多くの可能な解決策がある、との質問に記載されているものの代わりに、このように、3つのテーブルを使用して、それをモデル化するために、次のようになります。

Patients (PatientId (PK), PatientName, ...) 
-- example: 1, "Patient1" 
Conditions (ConditionID (PK), ConditionName, ...) 
-- example: 1, "Diabetes" 
PatientCond (PatientID (FK), ConditionID (FK), PatientStatus, FatherStatus, MotherStatus) 
-- example: 1, 1, true, false, true 

ジャンクションテーブルを使用すると、多くをモデル化するための一般的なソリューションです。多対多関係。

関連する問題