从事医学数据库工作。我们有一个处方表、一个诊断表和一个项目表(每个项目,而不仅仅是药物)。
在诊断表中,有一整列称为 med#(目前为 13,可能会增加),列出了患者开出的所有各种药物。药物名称存储在项目表中(因为多语言) 要检索药物 1~13 的名称,我使用以下查询。
它有效,但我想它可能不是很有效。有没有更好的方法来重写这个?或者甚至重新设计数据库?它仍处于早期阶段,数据库设计尚未锁定。
select d.name_en, e.name_en
from
diag a
inner join
pres c
on a.med1 = c.id
inner join
pres b
on a.med2 = b.id
inner join
items d
on b.id = d.id
inner join
items e
on c.id = e.id
where a.id = 1