数据库结构 - 药物使用

时间:2017-05-10 09:32:00

标签: android sqlite database-design persistence

我正在尝试制作一个Android应用来跟踪用户的药物使用情况。 问题是我服用药物的设置非常不同。 用户应该提供有关何时以及如何服药的信息。

一些额外的信息,如(吃饭前/吃完后)可以存储在药物描述的单独表格中(例如,可能没有必要将其与使用时间一起存储)。

此外,这不是包含有关用户何时实际使用它的信息的表。 (这里我有一个简单的medicine_Id和时间戳表)。

所以情况看起来像这样。用户将使用情况设置为:

  • 阿司匹林 - 吃前的早餐和晚餐
  • 抗生素 - 每8个小时......

我以为我会将这些数据存储在数据库中,但我不知道该怎么做。或者它可能更好地以不同的方式存储它(例如共享首选项,JSON / XML,文本文件)?

基本上似乎有以下类型的“用法”:

  • 一天n次(定期,每8小时一次)
  • 在某些餐点(早餐,午餐,晚餐)
  • 每日(每天一次/每周一和周六)

问题是:

在Android设备上保存这些数据的适当解决方案是什么? 并且(如果使用SQLite)您会对数据库方案提出什么建议?

-----编辑-----

只是为了说清楚。 我不需要用户的说明文字何时服药。 我需要的是根据给定设置设置闹钟的信息。所以最后我需要一个我以后可以匹配的值,比如

(if currentTime == breakfastTime)
   ... 

或者

(if medicine.takeAtBreakfast)
   ...

这将呈现描述用户信息的字符串值无用。第一个想法是数据库的布尔列,用于早餐,午餐,晚餐以及相同的工作日。但这似乎浪费了很多空间。

2 个答案:

答案 0 :(得分:3)

药物通常每天服用不超过几次。情况可能并非总是如此,但可以安全地假设大多数情况都是这种情况。在您的描述中,药物治疗时间相当好,例如每天两次,每8小时一次,但实际上该方案可能比这更复杂。一般来说,我们应该期望医生可以指导患者在当天的任何时间点进行几次药物治疗。

考虑到这些假设,我们可以考虑下表来服用药物:

regimen (id, subscription_id, medication_id, time_of_day, comment)

此表中的给定条目对应于一个处方,一个患者,一个药物和一天中的给定时间。对于白天需要超过一剂的处方,每次剂量都有记录。

处方表将记录给定Rx中的药物,以及每种药物的剂量:

prescriptions (id, date, doctor_id, patient_id, medication_id, dose)

这只是一个开始,你需要药物表,可能还有几个。此外,还可以为医生提供一个表格和相关的元数据。

修改

要处理每日一次的处方(即白天的任何时间),我们可以将time_of_day设置为NULL。每天两次,我们可以使用两个记录,每个记录代表一个剂量。我们可以使用注释列来指示第一剂量,第二剂量等,或者可能添加另一列。

答案 1 :(得分:1)

有一张桌子上的用法(一天一次,就餐)。然后 在您的交叉表中有一个列数量,用于指定使用次数(例如每天3次,早餐)。

enter image description here