不确定如何在关系数据库中的某个时间点对药物进行建模。到目前为止,我所想到的每种方式似乎都有冗余数据。
需要能够让用户说我服用了x片或者某些药物。
目前我有一个日记表,与条目有一对多的关系。每个条目都有描述,日期,时间等,都很好。但我希望能够服用大量的药物。
目前的想法是有一个药物表,它与自身具有递归的多对多关系,因此一种药物可以含有多种其他药物,或者它本身可能是活性成分。
因此对于药物“可待因”而言。有效成分是可待因' (实际上不是活性成分,但说明了这一点)
但是你也有含有可待因和对乙酰氨基酚的药物,如cocodamol。因此必须映射到“可待因”和“可编程序”。排和'扑热息痛'行。
如何让用户有日记,添加条目说:
我服用了2种可可碱30mg可待因和500mg对乙酰氨基酚强度?
作为原始数据结构,它将类似于(忽略所有数据库部分):
{'diary':
{'entry':
{'date': '2014-11-11',
'medication': {
'cocodamol': {
'codeine': 60,
'paracetamol': 1000
}
}
}
}
这是一个表而不仅仅是平面文本字段的原因是
a) I want to create statistics for medication taken
b) I want the drug table to stay generic so I can link information to that drug
c) Would be useful to store prescription data as well as diary entries, so a Dr has prescribed taking 2 cocodamol 30/500mg up to every four hours
这引出了权重去哪里的问题,以及如何对数据进行一般建模。
已经制定了我认为应该是什么样的关系图,但我还不清楚我将如何服用30 / 500mg剂量的可可达,以下无论测量单位是多少,都应该照顾任何单剂量。
最好只输入{cocodamol:30 / 500mg}然后在后端有两个剂量,一个30mg可待因,然后一个500mg扑热息痛?
这可能意味着将Dosage链接到ActiveIngredient表而不是Drug,然后使用该链接的反向来确定用户使用的内容。因此,如果我们知道它们含有500mg对乙酰氨基酚和30mg可待因,它们都与药物cocodamol有关,我们可以重新制作药物而不是其组成部分。
干杯,
布雷特
(其中一些表中缺少某些字段,这些字段仅用于解决问题(我认为))
答案 0 :(得分:0)
你非常接近。
忘记重量,你不必要地从自然数据转向。您需要一个描述药物的实体作为您的直接入学儿童。这包括与品牌名称的关系(您无法使用当前模型导航到该品牌名称),并指示药物和剂量。
举个例子,假设你服用了一片Percocet 2.5毫克/ 325毫克。 (你可以用其他剂量服用Percocet)
品牌名称中有一行:
id: 16, name:"Percocet"
药物中有两行:
id: 5, name:"OxyContin"
id: 12, name:"Acetaminophen"
Medication中有三行:
id:20, name:"Percocet 2.5 mg/325 mg", brand_name_id: 16
id:21, name:"Percocet 5 mg/325 mg", brand_name_id: 16
id:22, name:"Percocet 7.5 mg/325 mg", brand_name_id: 16
...每个都有Dose中的两个子行:
medication_id: 20, drug_id: 5, Unit:"mg", Quantity:"2.5"
medication_id: 20, drug_id: 12, Unit:"mg", Quantity:"325"
medication_id: 21, drug_id: 5, Unit:"mg", Quantity:"5"
medication_id: 21, drug_id: 12, Unit:"mg", Quantity:"325"
medication_id: 22, drug_id: 5, Unit:"mg", Quantity:"7.5"
medication_id: 22, drug_id: 12, Unit:"mg", Quantity:"325"
所以现在你的Entry行只是:
medication_id: 20 (plus date, time, notes, etc.)
我也会把这些名字搞得一团糟。