临床问卷关系数据库

时间:2016-09-25 19:38:00

标签: sql database database-design

我有一个表格(除其他外)询问患者是否有某些疾病,以及他/她的父母是否有某些疾病。在关系数据库中存储此信息的最佳方法是什么?

为了讨论,让我们考虑单一的疾病,即糖尿病。请注意,我至少有25个条件要记录。

我考虑了两种可能的解决方案,但我对其中任何一种都不满意。

1。使用考试表,并带有以下字段:

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

这里的问题是田地数量爆炸;对于每个条件,我有3个字段。

2。使用条件表以及以下字段

PatientOrPatientParentId -- integer
Diabetes                 -- boolean

在这种情况下,患者的父母必须作为伪患者被引入DB中。

1 个答案:

答案 0 :(得分:1)

有许多可能的解决方案,问题中列出的解决方案的替代方案是使用三个表对其进行建模,如下所示:

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

使用联结表是建立多对多关系的常用解决方案。