原始帖子大部分已解决,请查看 Edit #2 了解我最近的问题
我希望你们很容易理解我想要做什么。我正在使用 cakePHP 开发一个项目,它允许用户在那里记录药物使用情况。无论是酒精、咖啡因还是其他任何东西。当人们添加日志时,他们从下拉列表中选择物质,然后输入他们服用的数量,然后输入他们选择用于测量的单位。
例如,某人可以从下拉列表中选择酒精,然后输入 12 作为剂量,然后输入毫升作为单位。
我一直在努力改进我的数据结构方式,以便当我有很多条目时,很容易将它们塑造成我需要的东西。我将使用这些数据为用户生成图形和图表,但这无关紧要。
我需要帮助找出组织这些数据的最佳方式
我现在的结构是这样的。
我的桌子
drugs
id | drug
1 | Alcohol
records
id | dose | unit | user_id
2 | 12 | mL | 3
record_drugs
id | record_id | drug_id
4 | 2 | 1
我有这些表同事。所以Drugs是下拉列表中提供的所有可用药物的列表,records表是他们可以存储剂量和单位以及其他一些杂项的地方,record_drugs基本上将记录与药物配对。
我遇到的一些问题:
1 . 假设一个用途有多个酒精记录,我制作了一个小脚本,添加了所有酒精剂量,然后向他们显示他们记录的酒精总量。如果我做一个简单的 find(list) 我可以获得药物名称和剂量总量,但我无法获得与药物相关的单位。因为似乎 foreach 语句只支持传递两个变量。
编辑:更多信息 我的发现看起来很复杂,但它所做的是遍历我上面列出的三个表并获取 3 个字段。在数组中是这样显示的
array(
'mL' => array(
'Alcohol' => '12'
),
然后,在我看来,我尝试在 foreach 中循环这些结果以显示我的数据。
Alcohol: 12 ml
我知道如何格式化并回显变量我只是不知道如何抓取我需要的数组中的三个值,然后将它们放入回显中。
2 . 如果我想配对许多相似类型的药物怎么办。例如,如果我将啤酒、威士忌、朗姆酒添加到列表中。所有这些都在同一个“类别”中,我想将这些类别用于某些功能。
我一直在考虑的一个解决方案是将单位也作为另一个下拉菜单的一部分。然后只有一个单位与药物相关。所以我可能会将我的药物表更改为
drugs
id | drug | unit
1 |Alcohol| mL
但是,这为设置单位的用户留下了没有定制的空间。也许他想用啤酒来衡量,也许他想用啤酒来衡量。
编辑#2
我一直在努力规范我的数据库这是结果布局
records
id | date | title | user_id
1 | Jan | Title | 1
units
id | unit
1 | mL
2 | l
drugs
id | drug
1 | Alcohol
record_drugs
record_id | drug_id | unit_id | dose
1 | 1 | 2 | 5
//There is a users table, but it is unrelated, and correctly formatted.
几个问题;
对于上面的前三个表,对于 id 字段。我应该将其命名为“tablename_id”还是仅命名为“id”?
“标题”字段将是用户可以选择输入的标题,如果他们想为条目命名。格式是否正确?
单位相对值如何工作?
我感谢任何花时间阅读本文的人。当然,我不希望我的问题的完整解决方案刚刚交给我。但是,即使您可以就我的问题的一部分提供提示或意见,那也会对我有很大帮助。