更好的过敏症数据库设计[非公开]

问题描述 投票:0回答:1

我需要存储以下与患者过敏相关的信息。

  • 指定病人是否没有过敏(不过敏)。
  • 患者过敏的药物。需要强调的是,这些药物属于预先建立的药物清单(表药)。
  • 指定药物以外的其他过敏。可以是任何东西,例如,坚果过敏或蜜蜂蜇伤。这些过敏症不属于预先确定的列表。

考虑以下一组要求。

  • 病人不能有任何形式的过敏。
  • 患者可能对药物不过敏,但可能有其他过敏症。
  • 患者可能对药物过敏,但没有其他过敏症状。
  • 患者可能对药物过敏,但也可能有其他过敏症状。

纸质表格的填写方法示例。

我需要能够咨询。

  • 病人有某种类型的过敏。
  • 患者有哪些过敏不是药物过敏。
  • 患者对哪些药物过敏。

我为这个功能做了两个设计。

设计1 将过敏表和药物过敏表联系起来。

Design 1

设计2将表中的病人和药物过敏症联系起来。

enter image description here

我必须实现哪种数据库设计?

这些设计的优缺点是什么?

哪种设计更容易扩展和维护?为什么?

has_allergies字段应该在另一个表中?

我是数据库设计的新手。请提出其他方案。

mysql database database-design mariadb database-normalization
1个回答
0
投票

问:我不明白这个要求。A patient cannot have known allergies (no allergies). 请说明。

HOWEVER:我不明白要求:......请澄清。

  1. 这听起来像要求是:

    • 任何病人可以有零或更多的过敏。
    • 过敏可能是对一种药物,也可能不是。
  2. 你需要能够查询上。

    • 病人有哪些过敏症状
    • 一个病人有多少过敏症
    • 患者对哪些药物过敏?

建议。

  • 我认为你只需要三个表格。"病人"(病人信息),"过敏"(病人信息)。任何 过敏:是否与药物有关)和 "患者过敏"(将患者和他们各自的过敏联系起来)。
  • "过敏 "可以有一个布尔标志,表示 "药物治疗:yn"。
  • 将过敏症做成一个单独的表(而不是仅仅是 "患者 "中的一个文本列)的一个好处是确保与过敏症名称的一致性。 另一个好处是,该表可以包含以下信息 关于 过敏类型(如是否由药物引起)。
  • 最后,"患者过敏 "模型是 多对多 现有患者与各自过敏症之间的关系。
© www.soinside.com 2019 - 2024. All rights reserved.