症状检查器应用程序的数据库设计

时间:2014-04-16 11:46:10

标签: sql-server database-design database-relations expert-system

我正在尝试创建一个类似于WebMD的症状检查器,用户输入他们的症状,并根据输入提示疾病。我有两张桌子,一张包含所有症状,另一张包含所有疾病。但我不知道如何关联这两个表。我可以采用以下方法;

+-----------------+----------+----------+----------+--------+----------+
|     Disease     | Symptom1 | Symptom2 | Symptom3 | Gender | AgeGroup |
+-----------------+----------+----------+----------+--------+----------+
| Some Disease    | Yes      | No       | Yes      | All    | 19-35    |
| Another Disease | No       | Yes      | Yes      | Male   | All      |
+-----------------+----------+----------+----------+--------+----------+

但它是多余的,因为我必须将“症状”表中的所有记录作为此表中的列包含在内,并且当我必须添加新症状时会出现问题。那么有没有更好的方法来组织这个?或者,有没有更好的替代方法(第三方API?)来实现这一目标?

1 个答案:

答案 0 :(得分:1)

最好有三个表:疾病,症状和" dissyms"。前两个是包含主键和名称的简单表(疾病表可能有一个或两个额外的字段,如上图所示),而第三个表是一个'连接表'它链接了另外两个表。该表仅包括疾病表的主键和症状表的主键,但同样可以添加额外的字段以提供进一步的信息。

我最近患有肺炎,所以我知道症状。疾病'表会有肺炎的元组;症状'桌上会有像发烧,咳嗽,咳嗽,湿咳等声音的元组,以及&和/或#39; dissyms'表会有将这些症状与肺炎联系起来的元组。

当您想要添加其他症状时,您的表结构会出现问题。我所描述的是处理问题的规范方法。