我正在构建一个显示食物营养成分的 Web 应用程序。
我的数据当前存储在一个foods
表中,其中每个营养素都是一个带有数值的列,例如:
姓名 | 钠 | 钾 | ... |
---|---|---|---|
面包,夏巴塔面包 | 350 | 152 |
然而,这意味着我必须在我的应用程序中硬编码营养名称(例如“钠”)和单位(例如“mg”)。我更希望这也来自数据库,我想这将是某种固定定义表,例如:
ID | 姓名 | 单元 |
---|---|---|
“不” | “钠” | “毫克” |
“K” | “钾” | “毫克” |
我想看看是否有更好的方法来引用定义,而不是在foods
表中创建更多列,例如:
... | 钠 | 钠值 | 盐 | 盐值 | ... |
---|---|---|---|---|---|
“不” | 350 | “盐” | 152 |
所以我天真地实现了以下内容:
但是我注意到表格中有很多重复,food_nutrients
即每种食物的营养值大约有 30 行,我想知道 a)这是否是食品数量不断增加的数据库中的一个问题,以及 b)是否有更合适的模型有更多经验的人可以建议吗?
你的
food_nutrients
桌子设计是完美的,不要改变它。当然会有重复,因为许多食谱需要一汤匙盐。这是您的数据中固有的重复,没有什么坏处——毕竟,您正在建模一个重复的现实。我相信任何摆脱重复的尝试都会使数据模型复杂化和恶化。