因为一只猫,我做了一个宠物营养计算器
缘起
为什么会有做这个计算器的想法?是因为前段时间,女朋友的猫准备开始吃自制猫饭。听起来挺浪漫的,自己给猫做饭。但做了两天我就发现,做饭本身根本不是问题,真正的问题是:这份食谱,营养到底够不够?
不是”感觉上健康”就行,而是要有明确答案。蛋白到位了吗,钙磷比对不对,牛磺酸缺口有多大,哪些东西吃多了反而有害。这些问题,靠直觉是回答不了的。
于是我开始查。查着查着发现,宠物营养这块有三套主流标准,每一套都有自己的逻辑。
先搞清楚:三套标准到底在说什么
NRC、AAFCO、FEDIAF——这三个名字在宠物营养圈里出现频率极高,但很多人分不清楚它们的区别。我当时也是。
| NRC | AAFCO | FEDIAF | |
|---|---|---|---|
| 全称 | 美国国家研究委员会 | 美国饲料协会 | 欧洲宠物食品工业联合会 |
| 组成 | 美国国家科学院旗下非营利机构 | 州和地方官员、兽医师、饲料商组成的民间机构 | 宠物食品公司、兽医学会、政府部门联合组成 |
| 特点 | 依照科学研究制定营养需求,确保标准符合宠物的生理和生长需要 | 制定饲料和宠物食品的最低和最高营养标准,控管成分与品质,确保产品标示信息正确可靠 | 容纳更多与犬猫健康有关的营养观点,从不同角度说明符合主食的营养标准 |
| 差异 | 注重科学研究,标准较为科学化,更新速度较慢 | 标准更加实际,注重确保食品标签信息对消费者有实际指导价值,更新较迅速 | 将犬猫不同时期所需营养细分,包括幼猫幼犬的前后期,甚至细至不同活动程度的需求 |
| 重点规范 | 1. 犬猫营养素需求表 2. 营养素介绍 | 1. 犬猫营养素需求表 2. 包装标示原则 3. 检验流程 4. 喂食测试 | 1. 犬猫营养素需求表 2. 营养素介绍 3. 体态评分表(BCS 表) |
简单理解:NRC 更像学术底版,AAFCO 更像北美合规框架,FEDIAF 更像欧洲行业指南,分期更细、安全边界也更明确。我在项目里把三套标准都统一换算到每 1000 kcal ME 的口径,支持用户自由切换对照。因为同一份食谱如果在三套标准下都说得过去,结论才更让人放心。
然后,数据从哪里来
标准有了,下一个问题是:食材的营养成分怎么查?
比如鸡心,里面的牛磺酸含量是多少、磷是多少、铁是多少。你去网上一搜,结果往往五花八门,来源不明,数字差异还很大。自制猫饭最怕的就是数据本身不准,却还在上面认认真真地算,最后得到一个看起来”达标”、实际上已经偏掉的结论。
所以数据这块,从一开始就只考虑官方来源。
最后选定了两个:中国食物成分表和 USDA FoodData Central(美国农业部食物数据库)。
选这两个的理由很直接。中国食物成分表是国内权威的数据来源,对常见食材的覆盖更贴近实际,比如配猫饭常用的鸡胸、猪肝、鸡蛋,用本地数据更可信。USDA 的优势是覆盖范围更广,很多国内数据库里没有的项目,USDA 往往能补上。
我还基于 USDA 做了一套常用食材数据整合:以 USDA 为基础,结合澳大利亚食品库、日本食品标准成分表、台湾食品成分数据库、新西兰食品成分数据库,以及部分关于食品碘含量、牛磺酸含量的论文,尽量把常用食材的营养成分覆盖全面。营养补剂也补了一部分常用品类。考虑到食材库里仍然会有缺项,工具也支持自定义食材或补剂录入,并参与食谱构成。
为什么没有直接用现成工具
市面上不是没有宠物营养计算器,但用下来的体感是:大多数工具要么数据覆盖不全,要么界面很难用,要么标准只支持一种,要么根本不透明——你看到一个”达标”的绿勾,但你不知道它是怎么算出来的。
最让我难受的是操作不连贯。选食材、记克重、做计算、对照标准,这几件事被切成了好几段。每次只是调整一个食材的克重,都得把整套流程再走一遍。改 10g 肉,不该这么累。
于是决定自己做一个。
做的过程里踩了哪些坑
两个数据库的数据不是一回事
中国食物成分表和 USDA 数据库都是官方来源,但合并起来并不简单。同一个营养素,两边单位不一定一样,覆盖项目也不完全一致,有些营养素是一边有、一边没有。最麻烦的是,这类问题不会报警,界面看起来一切正常,结果却可能悄悄偏掉。通常只能靠”这个数字看起来不对劲”的直觉,再一层层回查,才知道哪里没对上。
另外,考虑到后续要持续更新食材数据,我没有把源数据做成固定死的中间格式,而是在程序层做了适配。这样后面只要官方数据源更新,直接替换源文件就能完成无感更新,不需要每次都重新清洗。
关于食材是单选还是多选
一开始我把添加食材做成了单个添加。后来自己连续用了几次,发现当食材稍微多一点,这个操作会非常磨人:点一次、加一个,再点一次、再加一个,节奏特别碎。
后面改成了”先勾到待选区,再批量加入”。这个改动对体验影响很大:可以一次性把食谱要用的食材都选好,再专心调克重,不会总被重复点击打断。
现在这个工具是什么样的
核心流程尽量压短:选数据源 → 搜食材勾选到待选区 → 批量加入食谱 → 填克重 → 看营养对标结果。
不要求用户上来就把所有数字填满,可以先把食材组合搭好,再逐步调整克重。调整一次,结果实时更新,哪项缺、缺多少,页面上直接能看到。
数据来源支持中国食物成分表、常用食材完整版、USDA 官方数据库,以及用户自定义录入。三套营养标准都可以切换对照。
还没做完的事
覆盖的食材还不够全,有些东西查不到就只能手动录入。用起来偶尔也会遇到一些小异常,切换来切换去时状态有时会卡一下。还有一个我一直想解决、但还没解决好的问题:报告出来之后,用户知道某项缺了,却不知道该怎么补。该加什么、加多少、会不会又顶掉别的?光给一张数字表格是不够的,这件事还得继续做。
这不是一个很宏大的项目,起点只是给一只猫算配方。但做着做着我发现,”算配方”背后涉及的东西比预想中多得多。先做到用起来顺,再做到算得准,然后再想别的。
如果你也在做自制猫饭,欢迎试试:https://pet.chcaty.cn/