Database 一个表中有一个单列主键,但另一个表中有两个或更多类似的列,例如Drug Interaction数据库
我试图为药物相互作用创建一个数据库模式 药物相互作用是一种现象,当两种或两种以上的药物同时给予患者时,如果两种药物没有单独给予,联合效应可能不是预期的——有时,药物相互抵消,有时,一种药物增加另一种药物的毒副作用等 我的数据库模式现在看起来像 DrugID pk,通用名称 Interactiondrugid1 fk,drugid2 fk,结果,interactionID整数标识 这只适用于2种药物的相互作用,不适用于2种或更多的相互作用。 我如何解决这个问题 我尝试了下面提到的答案,但我在这一点上卡住了 我的桌子看起来像 交互ID结果 1死亡 2心脏病发作 药物相互作用 11 2.1 3.1 2.2 5.2 现在如果我质疑 从drugid=1或drugid的参与药物中选择interactionid =2或drugid=3Database 一个表中有一个单列主键,但另一个表中有两个或更多类似的列,例如Drug Interaction数据库,database,database-design,Database,Database Design,我试图为药物相互作用创建一个数据库模式 药物相互作用是一种现象,当两种或两种以上的药物同时给予患者时,如果两种药物没有单独给予,联合效应可能不是预期的——有时,药物相互抵消,有时,一种药物增加另一种药物的毒副作用等 我的数据库模式现在看起来像 DrugID pk,通用名称 Interactiondrugid1 fk,drugid2 fk,结果,interactionID整数标识 这只适用于2种药物的相互作用,不适用于2种或更多的相互作用。 我如何解决这个问题 我尝试了下面提到的答案,但我在这一点
我将同时得到交互id 1和2,但我应该只得到1定义以下表格:
drug --like yours
interaction (interactionID int identity, outcome)
participating_drug (drugid, interactionid)
在任何相互作用中都涉及多种药物。我会这样做
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
结果\药物与结果存在多对一关系。结果是锚
对于查询:
选择同时涉及硫酸氪石和阿司匹林的结果我尝试了这个方法,但我不能用interactionid查询。例如,我有3种药物。我的查询看起来像是从参与药物中选择transactionid,其中drugid=a或drugid=b或drugid=c。这将提取所有涉及这些药物的transactionid,而不是一行。我感到困惑只在这一部分。为什么在这种情况下你只希望有一行?我的意思是,一种药物可以与多种药物相互作用,对吗?我应该只知道如果我同时开药a+药物b+药物c会有什么结果。如果我使用这种药物,我会得到药物a和其他一些组合的结果或结果。关于我的困境,我也做了一些更新。谢谢