-1

我正在尝试为药物相互作用创建数据库模式。

药物相互作用是一种现象,当两种或多种药物在同一时间给予患者时,如果不单独给予两种或多种药物,则不会产生预期的综合效果——有时,药物相互抵消,有时, 一种药物会增加另一种药物的毒性作用等。

我的数据库架构现在看起来像

药物(drugid pk,通用名称)

交互(drugid1 fk,drugid2 fk,结果,interactionID 整数标识)

这仅适用于 2 种药物相互作用,不适用于 2 种或更多相互作用。
我该如何解决这个问题?

我尝试了下面提到的答案,但我被困在这一点上

我的桌子看起来像

交互 ID 结果

1 人死亡

2心脏病发作

药物相互作用id

1 1

2 1

3 1

2 2

5 2

现在如果我查询

从participant_drug 中选择interactionid,其中drugid =1 或drugid =2 或drugid =3

我将同时获得交互 ID 1 和 2,但我应该只获得 1

4

2 回答 2

1

定义下表:

drug --like yours
interaction (interactionID int identity, outcome)
participating_drug (drugid, interactionid)

在任何相互作用中都涉及多种药物。

于 2013-07-12T19:00:57.997 回答
0

我会这样做

DRUG
drugid     100................200
drugname   aspirin............kryptonite sulfate
etc


OUTCOME
outcomeid 12345
outcome_description  e.g. loss of muscle tone when kryptonite sulfate and aspirin are mixed

OUTCOME_DRUG
outcomeid (references OUTCOME.outcomeid)
drugid  (references DRUG.drugid                   

OUTCOME_DRUG 与 OUTCOME 是多对一的关系。OUTCOME 是“锚”。

对于查询: 选择同时拥有狗和猫的用户

(选择同时涉及硫酸氪石和阿司匹林的结果)

于 2013-07-13T00:55:33.207 回答