概述
我正在构建一个Rails应用程序来组织药物治疗,使用MySQL。本应用程序的目的是提供特定剂量的治疗建议,并提供更多关于药物在治疗各种情况下的效用的一般信息。
“毒品”-例如:“Abilify”
“剂量”-例如:“10毫克”
“状况”-例如:“萧条”
用于所需用例的
“处方”(药物+剂量+条件) =>这是对特定剂量数据的要求,对于一个特定的条件。临床研究可能附在这个实体上。
“治疗”(药物+剂量) =>这是必需的,因为它代表了大多数药物的定价方式,以及大多数药物是如何在第三方健康应用程序之间互换的,使用了一个称为RxNorm概念唯一标识符的政府标准主键。
“使用”(药物+条件) => -这是连接药物与条件,而不考虑剂量要求。有些药物用于治疗多种疾病。
这三种模式,如果实施,就会在药物和条件之间,或者药物和剂量之间产生重复的关系。我们如何建立一个规范化的系统来支持我们对剂量和条件特定工具以及剂量和条件无关工具的需求?
=>的“处方”实体将允许我们附加临床研究,和替代方案,为5毫克阿比林治疗抑郁症。“治疗”实体将允许我们找到定价,以及第三方补充数据,为5毫克的Abilify。“使用”实体将允许我们跟踪Abilify用于治疗的所有情况,以及它们在治疗这些不同情况时的有效性。
发布于 2014-07-02 19:15:36
这个问题如果部分数据库模式和部分rails。从Rails的角度来看,您可以创建任意数量的别名关系,因此规范化并不是那么重要。
但是,没有看到模式,只是基于上面所写的内容,我想说,Dosage不属于具有自己的模型的表。
剂量有效
数额: 10计量单位:毫克
把像10毫克这样的东西写到桌子上,给他们一个id是没有意义的。通过将数据库中的所有内容转换为毫克来组织现有的度量单位类型,甚至标准化,这样您就可以在显示时进行转换,这可能是最有意义的。
然后完全消除dosages表并简化为:
therapies
- id
- drug_id
- milligrams处方变成:
prescription
- id
- therapy_id
- condition_id现在,使用是这里的异常值,因为它是您唯一真正的“重复”关系,但是您需要将药物与病情联系起来的所有东西都可以从您的处方数据中推断出来,实际上如下所示:
SELECT DISTINCT prescriptions.condition_id, therapies.drug_id
FROM prescriptions
INNER JOIN therapies ON prescriptions.therapy_id = therapies.id您可以使用上面这样的查询来创建一个名为view的usages,Rails中的只读Usage模型可以使用该查询。如果性能成为关注的问题,您可以使用它来创建缓存的用例表,并在添加新的trigger时设置数据库prescription来更新缓存表。
https://dba.stackexchange.com/questions/69569
复制相似问题