我目前有3张桌子:
Drug
id
name
DrugAlias
drug_id
name
Patient
first_name
last_name
drug_alias_id
药物追踪科学名称(例如:对乙酰氨基酚)和DrugAlias,它是药物的孩子,跟踪其他可能的名称(例如:阿司匹林,acephen,aceta,扑热息痛等)。 / p>
患者可以服用一种药物,但是我在患者餐桌而不是药物中跟踪药物治疗,因为我希望能够记住患者喜欢称之为特定药物的药物。 。换句话说,我想记住患者给予对乙酰氨基酚阿司匹林。
问题在于,这并不允许患者给予对乙酰氨基酚对乙酰氨基酚,除非我每次创造药物时都要像药物一样创造一个名为DrugAlias的药物,这会造成一些重复。
我想知道是否有其他人对这个问题有任何其他解决方案?
谢谢!
答案 0 :(得分:0)
坦率地说,我认为将真实姓名存储为别名的想法是一个很好的主意。
它简化了逻辑并反映了现实 - 药物可以在别名表中被称为任何东西。
父表用于报告,子表用于搜索。这对我来说很有意义。
那么如果有一点点数据重复会怎么样呢。删除重复会带来很多复杂性,几乎没有任何好处。此外,没有数据维护问题,保持科学名称与别名同名,因为科学名称永远不会改变。
答案 1 :(得分:0)
Drug
dr_id PK
dr_name FK
DrugAlias
dra_id PK one to one with dr_id
dra_name
dr_name - from the Drug table
Patient
pat_id PK
first_name
last_name
dra_id FK
dra_name FK
您的问题是结构和设计问题。波西米亚人用一句话说得很好。
这适用于具有关系数据库环境的设计。 您可以使用正确的密钥,正确的连接和一个好的查询来实现您想要的一切。