想到啥就写点啥

因为一只猫,我做了一个宠物营养计算器

缘起

为什么会有做这个计算器的想法?是因为前段时间,女朋友的猫准备开始吃自制猫饭。听起来挺浪漫的,自己给猫做饭。但做了两天我就发现,做饭本身根本不是问题,真正的问题是:这份食谱,营养到底够不够?

不是”感觉上健康”就行,而是要有明确答案。蛋白到位了吗,钙磷比对不对,牛磺酸缺口有多大,哪些东西吃多了反而有害。这些问题,靠直觉是回答不了的。

于是我开始查。查着查着发现,宠物营养这块有三套主流标准,每一套都有自己的逻辑。

先搞清楚:三套标准到底在说什么

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/

© 2026 我想探索一下世界

Elegant theme by Shiro · Made by Acris with ❤️