资讯动态

基于SpringBoot的菜谱推荐与饮食规划平台计算机毕业设计(源码+lw+部署文档+讲解等)

发布时间:2026/10/20 4:07:37 来源:尧图企业网站定制
博主介绍✌ 专注于VUE,小程序安卓Java,python,物联网专业有18年开发经验长年从事毕业指导项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题我会尽力帮助你。一、研究目的在全球范围内随着生活节奏加快与健康意识提升饮食管理已成为人们日常关注的焦点。传统的菜谱查询方式往往缺乏个性化与系统化导致用户在选择食材、制定膳食计划时面临信息过载与决策困难。近年来推荐系统与大数据技术的快速发展为解决此类问题提供了技术基础但现有研究多聚焦于单一维度的推荐缺乏对饮食结构、营养平衡及用户健康状况的综合考量。本研究旨在构建基于SpringBoot框架的菜谱推荐与饮食规划平台以实现高效、可扩展且易维护的后端服务。通过引入协同过滤、内容分析、机器学习模型平台将能够根据用户偏好、过敏信息、营养需求以及生活习惯进行精准匹配从而生成个性化的菜谱列表与每日膳食计划。与此同时平台将集成健康监测模块支持用户上传体重、血压、血糖等指标并利用数据可视化技术呈现饮食与健康状态的关联趋势为用户提供科学依据。技术实现层面上研究将探索SpringBoot与微服务架构的结合方式利用Docker容器化部署实现系统的弹性伸缩与持续集成。通过对比实验与用户调研本研究期望验证所提出模型在推荐准确率、用户满意度及健康干预效果方面的优势并为后续相关领域提供可复制的技术框架与方法论。二、研究意义本研究在信息技术与营养科学交叉领域开展旨在通过构建基于SpringBoot的菜谱推荐与饮食规划平台填补当前个性化饮食服务缺失的空白。该平台将整合用户口味偏好、过敏信息、体重目标以及日常活动量等多维度数据从而实现精准的菜谱匹配与膳食计划生成。通过引入协同过滤与内容分析技术系统能够在海量菜谱库中快速定位最符合用户需求的食谱并对其营养成分进行自动标注。与此同时平台将配备健康监测模块支持用户上传体重、血压、血糖等指标并利用时间序列分析预测饮食调整对健康状态的潜在影响。技术层面上本研究将探索SpringBoot与微服务架构的深度融合利用Docker容器化部署实现系统的弹性伸缩与持续集成从而为大规模用户提供高可用、低延迟的服务。研究意义体现在多方面首先它为公众提供了科学、便捷的饮食决策工具有助于提升整体营养水平与健康意识其次平台的数据聚合与分析能力可为营养学研究提供大规模真实世界数据为疾病预防与管理提供依据再次技术创新点在于将传统推荐系统与健康监测深度结合为后续智能医疗平台奠定范式最后该平台的模块化设计与开放接口可促进产业链协同发展推动健康科技与食品行业的融合。通过对比实验与用户满意度调查本研究期望验证所提出模型在推荐准确率、用户粘性以及健康干预效果方面的显著优势为实现全民健康管理提供可复制、可推广的技术路径。三、国内外研究现状在全球范围内饮食推荐与健康管理已成为计算机科学与营养学交叉领域的热点课题。国外学术界以协同过滤、深度学习及知识图谱为核心技术构建了多种个性化菜谱推荐系统。以Recipe1M、Food-101等公开数据集为基础研究者通过卷积神经网络提取菜品图像特征并结合文本描述实现跨模态匹配从而提升推荐的多样性与准确率。与此同时Diet2Vec等工作将膳食记录映射至低维向量空间实现了基于用户历史饮食的相似度计算进一步提升了推荐的个性化水平。近年来研究者还将健康监测数据如体重、血压、血糖与推荐模型耦合通过强化学习动态调整膳食计划以实现长期健康干预。在国内随着《中国食品成分表》及全国营养调查数据库的完善学术界开始关注基于本土饮食文化的推荐系统。多篇论文提出了基于规则与机器学习相结合的混合模型利用传统菜谱知识库与用户口味偏好进行精准匹配。国内研究者还探索了多源数据融合技术将社交媒体中的饮食帖子、健康问卷及传感器采集的生理指标统一纳入推荐框架从而实现更细粒度的个性化服务。近年来国内学术界在可解释性推荐方面取得突破提出基于因子分解机与注意力机制的模型使用户能够直观了解推荐依据提升系统透明度与信任度。总体而言国外研究多聚焦于算法创新与大规模数据处理强调模型精度与多模态融合国内研究则更注重本土化知识库构建、数据隐私保护及可解释性。两者在技术路线、数据来源与应用场景上形成互补。未来的研究方向将进一步深化健康监测与推荐系统的耦合探索基于微服务架构的可扩展平台并在保证数据安全与用户隐私的前提下推动个性化饮食管理向精准医疗与公共健康服务延伸。四、预期达到目标及解决的关键问题本研究的预期目标聚焦于构建一套完整、可扩展且高效的菜谱推荐与饮食规划平台旨在实现多维度个性化服务并兼顾系统性能与可维护性。首先平台将通过集成协同过滤、内容分析及深度学习模型实现基于用户口味偏好、过敏信息、营养需求以及生活方式的精准菜谱匹配其次平台将提供每日膳食计划生成与动态调整功能支持用户根据体重目标与健康指标进行实时反馈再次系统将嵌入健康监测模块允许用户上传体重、血压、血糖等生理数据并通过时间序列分析预测饮食调整对健康状态的影响最后技术实现层面将采用SpringBoot微服务架构与Docker容器化部署实现弹性伸缩、持续集成与高可用服务。通过上述目标本研究期望在推荐准确率、用户满意度以及健康干预效果方面取得显著提升为大众提供科学、便捷的饮食决策工具。在实现上述目标的过程中关键问题主要集中于算法设计、数据治理与系统架构三大维度。算法层面如何在保证模型精度的同时兼顾多模态特征融合与实时性是一大挑战此外如何将健康监测数据与饮食推荐模型有效耦合以实现动态、可持续的健康干预也是亟待解决的问题。数据治理方面平台需处理海量菜谱文本、图像及用户行为日志如何构建统一、标准化的数据仓库并保障用户隐私与数据安全是关键技术难点同时如何利用本土化营养数据库与国际标准进行对齐以提升推荐的科学性也是重要议题。系统架构层面微服务化设计需要解决服务间通信、负载均衡与容错机制Docker容器化部署则需保证持续集成与自动化运维的高效性此外如何在保证系统可扩展性的同时降低运维成本与技术债务也是研究重点。针对上述关键问题本研究计划采用多策略组合解决方案。算法方面将探索基于因子分解机与注意力机制的混合模型并引入强化学习框架实现动态推荐数据治理将构建统一的元数据管理平台并采用差分隐私技术保护用户信息系统架构则通过SpringBoot与Kubernetes集群实现弹性伸缩并利用Prometheus与Grafana进行监控与告警。通过上述方法本研究期望在技术可行性、科学性与实用性之间取得平衡为国内外相关研究提供可复制、可推广的技术路径。五、研究内容本研究围绕构建基于SpringBoot的菜谱推荐与饮食规划平台展开整体研究内容可划分为四个主要模块数据采集与预处理、推荐算法设计与实现、健康监测与动态规划、系统架构与性能优化。首先在数据采集与预处理模块中计划收集多源菜谱信息包括文本描述、营养成分表、食材图像以及用户评价等同时将从公开数据库获取的宏观营养数据与国内食品成分表进行对齐形成统一的营养标签体系此外为保障用户隐私将采用脱敏技术对个人信息进行匿名化处理并在数据存储层实现加密存储。其次推荐算法设计与实现模块将聚焦于多模态特征融合与个性化匹配。具体而言文本特征将通过BERT等预训练模型提取语义向量图像特征则利用ResNet等卷积网络进行编码两类特征将通过因子分解机实现低维映射并在此基础上引入注意力机制突出用户偏好与菜品特色的关联为提升推荐的动态性将构建强化学习框架使得系统能够根据用户实时反馈调整策略。第三健康监测与动态规划模块旨在将饮食推荐与个体健康状态紧密耦合。平台将支持用户上传体重、血压、血糖等生理指标并通过时间序列分析预测饮食调整对这些指标的影响基于预测结果系统将自动生成每日膳食计划并在用户偏好与营养需求之间进行权衡此外为满足长期健康干预需求将设计周期性评估机制定期对用户体重变化、血糖波动等指标进行回顾性分析并给出改进建议。最后系统架构与性能优化模块将采用SpringBoot微服务框架构建后端服务并通过Docker容器化实现快速部署在服务层面将使用Nginx做负载均衡Kafka实现异步消息传递Redis缓存热点数据以降低数据库压力同时为保证系统可扩展性与高可用性将利用Kubernetes进行集群管理并通过Prometheus与Grafana实现监控与告警。整个研究过程将采用迭代式开发模式每个模块完成后进行单元测试、集成测试以及性能评估在算法层面将通过A/B测试与离线实验验证推荐准确率与用户满意度在健康干预层面将开展小规模临床试验评估平台对体重管理与血糖控制的实际效果。综上所述本研究通过多维度数据融合、先进算法设计以及稳健系统架构旨在为用户提供科学、个性化且可持续的饮食规划服务并为后续健康管理平台的研发提供可复制、可推广的技术与方法论。六、需求分析用户需求方面平台的目标用户涵盖从日常生活中寻求便捷饮食方案的普通大众到关注健康管理与营养平衡的中高端人群再到专业营养师与健身教练等行业从业者。用户普遍期望在繁忙工作与生活节奏中能够快速获取符合自身口味、过敏史与营养需求的菜谱并通过系统生成可执行的每日膳食计划同时他们也希望平台能够实时反馈饮食对体重、血压、血糖等健康指标的影响从而实现动态调整。对于偏好多样化口味与文化背景的用户平台需支持多语言与地区菜系的切换并提供自定义食材禁忌与喜好设置此外用户对数据安全与隐私保护有较高要求期望个人健康信息得到加密存储与严格访问控制。对于专业人士而言他们需要更为精准的营养成分分析、饮食方案评估工具并能够批量导入或导出患者档案同时系统应支持多用户协同编辑与权限管理以满足团队合作需求。综上所述用户需求侧重于个性化、实时性、可视化与安全性并在不同人群中呈现多层次的功能深度与交互复杂度。功能需求方面平台首先需提供完善的用户身份认证与权限管理模块以支持单点登录、角色分配与数据访问控制随后用户资料管理模块应允许用户录入基本信息、过敏史、体重目标及生活方式等并支持动态更新。菜谱检索与筛选功能必须实现多维度查询包括关键词搜索、食材过滤、营养成分区间以及烹饪时长限制在此基础上推荐引擎将结合协同过滤与内容分析技术生成个性化菜谱列表并通过可解释性机制展示推荐依据。膳食规划模块需支持一键生成每日或每周膳食计划并提供日历视图与提醒功能以便用户跟踪执行同时系统应允许用户根据实际情况调整份量或替换食材并即时更新营养分析结果。健康监测集成模块将接入体重、血压、血糖等传感器或手动录入数据并利用时间序列模型预测饮食调整对指标的影响生成可视化趋势图与风险预警。反馈与学习机制应收集用户对推荐满意度、菜谱完成率等指标并将其纳入模型训练循环实现持续优化。最后系统性能与可扩展性需求包括微服务架构、容器化部署、负载均衡、缓存策略与监控告警以确保在高并发访问下保持低延迟与高可用。上述功能需求共同构成了平台的核心价值链满足不同层级用户的个性化与专业化需求。七、可行性分析经济可行性方面平台的成本结构主要包括数据采集与清洗、算法研发、服务器与存储资源、运维与安全合规等支出。初期可利用公开菜谱数据库与营养成分表进行数据获取降低许可费用对用户生成内容进行增量采集时可采用社区合作模式或众包方式进一步压缩成本。算法研发方面借助SpringBoot框架与开源深度学习库如PyTorch、TensorFlow可减少软件授权支出模型训练可在云端GPU实例上完成按需付费模式降低资本支出。服务器与存储资源方面采用容器化与微服务架构可实现资源弹性伸缩按流量计费的云平台如AWS、阿里云可进一步降低运维成本。营销与用户获取成本可通过社交媒体、健康类App合作推广实现低成本精准投放。预计在项目启动后12个月内通过订阅服务、增值功能如专业营养师咨询与广告合作可实现盈亏平衡长期来看随着用户基数扩大与算法精度提升平台具备可观的规模经济与利润空间。社会可行性方面平台满足了公众对健康饮食管理的迫切需求。随着慢性疾病发病率上升与健康意识提升人们对个性化营养方案的需求日益增长本平台通过提供科学、可视化的饮食规划与健康监测能够帮助用户降低肥胖、糖尿病等风险具有明显的公共卫生价值。与此同时平台遵循数据隐私法规如GDPR、个人信息保护法采用匿名化与加密存储技术保障用户信息安全提升社会信任度。平台亦可与医院、社区健康中心合作提供远程营养干预服务扩大社会影响力。对低收入人群而言可通过开放API与第三方健康管理系统整合降低使用门槛对高端用户则提供个性化咨询与专业营养师支持满足差异化需求。总体而言平台具备广泛的社会接受度与推广潜力。技术可行性方面平台所依赖的核心技术已在学术与工业界得到充分验证。SpringBoot微服务框架提供了成熟的开发与部署生态可实现快速迭代Docker容器化与Kubernetes集群管理保证了系统的弹性伸缩与高可用Redis缓存、Kafka消息队列等组件可有效降低延迟与提升吞吐量。推荐算法方面协同过滤、因子分解机、注意力机制以及强化学习框架均已在公开数据集上取得优异效果可直接迁移至本平台对多模态特征融合的研究已在菜谱图像与文本处理领域取得进展模型可通过迁移学习快速适配。健康监测模块可接入常见的可穿戴设备与健康APP接口实现数据同步时间序列预测模型如LSTM、Prophet已被广泛用于生理指标预测可直接应用。数据治理方面采用统一的数据仓库与元数据管理结合差分隐私技术实现安全合规同时通过标准化的API设计保证系统间的互操作性。综上所述技术实现路径清晰、可行性高能够满足平台在性能、可扩展性与安全性方面的多重要求。八、功能分析系统功能模块设计围绕用户需求与技术可行性展开逻辑分层并相互衔接。首先用户管理模块负责身份认证、角色授权与个人信息维护该模块实现单点登录、密码加盐存储、多因素验证并支持用户基本资料、过敏史、体重目标及生活方式的录入与编辑。其次数据采集与预处理模块负责菜谱数据的爬取、清洗与标准化该模块将公开菜谱数据库、食品成分表与用户上传图片同步至统一的数据仓库并通过文本分词、图像特征提取以及营养成分映射完成多模态特征构建。第三推荐引擎模块是系统核心采用协同过滤与内容分析相结合的混合模型该模块先利用因子分解机将用户与菜谱映射至低维空间再通过注意力机制突出用户偏好与菜品特色的关联并在此基础上加入强化学习策略实现动态推荐。第四膳食规划模块根据推荐结果生成每日或每周膳食计划该模块支持日历视图、份量调整、食材替换与营养分析并通过提醒功能促进用户执行。第五健康监测与反馈模块集成体重、血压、血糖等生理指标的实时上传该模块利用时间序列预测模型评估饮食调整对指标的影响并在可视化仪表盘中展示趋势与风险预警。第六数据分析与报告模块为专业用户提供营养师咨询与团队协作工具该模块支持批量导入患者档案、生成营养评估报告、跟踪干预效果并提供多维度统计图表。第七接口与集成模块负责对外API的开放与第三方系统的对接该模块实现OAuth 2.0授权、RESTful服务以及WebSocket实时推送支持与可穿戴设备、健康管理平台及医院信息系统的互操作。最后安全与合规模块贯穿整个系统采用加密存储、差分隐私技术、访问日志审计与合规检查该模块确保用户数据在采集、传输与存储过程中的机密性与完整性并满足GDPR及个人信息保护法的要求。通过上述功能模块的协同工作系统能够实现从数据获取到个性化推荐、健康监测与专业干预的闭环服务满足多层次用户需求并具备可扩展、可维护的技术架构。九、数据库设计字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注users.id | 用户唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 | 用于关联其他表的外键。users.username | 登录用户名 | 50 | VARCHAR(50) NOT NULL UNIQUE | |users.password_hash | 密码哈希值 | 255 | VARCHAR(255) NOT NULL | |users.email | 邮箱地址 | 100 | VARCHAR(100) NOT NULL UNIQUE | |users.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |food_items.id | 食材唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |food_items.name_cn | 中文名称 | 100 | VARCHAR(100) NOT NULL | |food_items.name_en | 英文名称 | 100 | VARCHAR(100) NULL | |food_items.category_id | 食材类别标识如蔬菜、肉类 | 11 | INT(11) UNSIGNED NOT NULL | 外键 references categories.id |food_items.image_url | 图片链接地址 | 255 | VARCHAR(255) NULL | |food_items.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |nutrition_info.id | 营养成分唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键, 外键 references food_items.idnutrition_info.calories | 热量kcal | 5 | INT(5) NOT NULL | 关联食材表外键 |nutrition_info.protein_g | 蛋白质克 | 5 | DECIMAL(5,2) NOT NULL | 关联食材表外键 |nutrition_info.fat_g | 脂肪克 | 5 | DECIMAL(5,2) NOT NULL | 关联食材表外键 |nutrition_info.carbohydrate_g | 碳水化合物克 | 5 | DECIMAL(5,2) NOT NULL | 关联食材表外键 |categories.id | 食材类别唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |categories.name_cn | 中文类别名称 | 50 | VARCHAR(50) NOT NULL UNIQUE | |recipes.id | 菜谱唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |recipes.title_cn | 中文标题 | 200 | VARCHAR(200) NOT NULL | |recipes.title_en | 英文标题 | 200 | VARCHAR(200) NULL | |recipes.description_cn | 中文描述可选 | 5000 | TEXT NULL | |recipes.description_en | 英文描述可选 | 5000 | TEXT NULL | |recipes.prep_time_min | 准备时间分钟 | 5 | INT(5) NOT NULL DEFAULT 0 | |recipes.cook_time_min | 烹饪时间分钟 | 5 | INT(5) NOT NULL DEFAULT 0 | |recipes.servings | 分量份 | 3 | INT(3) NOT NULL DEFAULT 1 | |recipes.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |recipe_ingredients.id | 菜谱食材关联唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |recipe_ingredients.recipe_id | 菜谱标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES recipes.id ON DELETE CASCADE |recipe_ingredients.food_item_id | 食材标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES food_items.id ON DELETE CASCADE |recipe_ingredients.quantity_g | 份量克 | 7 | INT(7) NOT NULL DEFAULT 0 | 关联食材表外键 |recipe_ingredients.unit | 单位如g、ml | 10 | VARCHAR(10) NOT NULL DEFAULT g | |user_preferences.id | 用户偏好唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |user_preferences.user_id | 用户标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES users.id ON DELETE CASCADE |user_preferences.preferred_cuisine_ids | 喜好菜系逗号分隔 | 255 | VARCHAR(255) NULL | 关联 categories.id 列表 |user_preferences.allergy_food_ids | 过敏食材逗号分隔 | 255 | VARCHAR(255) NULL | 关联 food_items.id 列表 |user_preferences.dietary_restrictions | 饮食限制如低盐、无糖 | 255 | VARCHAR(255) NULL | |user_health_data.id | 健康数据唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |user_health_data.user_id | 用户标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES users.id ON DELETE CASCADE |user_health_data.record_date | 记录日期 | 10 | DATE NOT NULL DEFAULT CURRENT_DATE() | 关联用户表外键 |user_health_data.weight_kg | 体重公斤 | 5 | DECIMAL(5,2) NULL | 关联用户表外键 |user_health_data.blood_pressure_systolic | 收缩压mmHg | 5 | INT(5) NULL | 关联用户表外键 |user_health_data.blood_pressure_diastolic | 舒张压mmHg | 5 | INT(5) NULL | 关联用户表外键 |user_health_data.blood_sugar_mmol_l | 血糖mmol/L | 5 | DECIMAL(5,2) NULL | 关联用户表外键 |meal_plans.id | 饮食计划唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |meal_plans.user_id | 用户标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES users.id ON DELETE CASCADE |meal_plans.plan_start_date | 计划开始日期 | 10 | DATE NOT NULL DEFAULT CURRENT_DATE() | 关联用户表外键 |meal_plans.plan_end_date | 计划结束日期 | 10 | DATE NOT NULL DEFAULT CURRENT_DATE() INTERVAL 7 DAY | 关联用户表外键 |meal_plans.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |meal_plan_items.id | 饮食计划项唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |meal_plan_items.meal_plan_id | 饮食计划标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES meal_plans.id ON DELETE CASCADE |meal_plan_items.recipe_id | 菜谱标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES recipes.id ON DELETE CASCADE |meal_plan_items.meal_time | 用餐时间如早餐、午餐、晚餐 | 20 | VARCHAR(20) NOT NULL DEFAULT Lunch | 关联 meals 表外键 |meal_plan_items.servings | 分量份 | 3 | INT(3) NOT NULL DEFAULT 1 | 关联菜谱表外键 |recommendation_logs.id | 推荐日志唯一标识 | 11 | INT(11) UNSIGNED AUTO_INCREMENT NOT NULL | 主键 |recommendation_logs.user_id | 用户标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES users.id ON DELETE CASCADE |recommendation_logs.recipe_id | 推荐菜谱标识外键 | 11 | INT(11) UNSIGNED NOT NULL REFERENCES recipes.id ON DELETE CASCADE |recommendation_logs.recommendation_time | 推荐时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | 关联用户表外键recommendation_logs.feedback_score | 用户反馈评分1-5 | 1 | TINYINT(1) NULL DEFAULT NULL | 关联用户表外键recommendation_logs.created_at | 创建时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |注所有外键均采用 ON DELETE CASCADE 策略保证数据一致性。每个表均满足第三范式避免冗余。)十、建表语句CREATE DATABASE IF NOT EXISTS recipe_platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;USE recipe_platform;-- 1. 食材类别表CREATE TABLE categories (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,name_cn VARCHAR(50) NOT NULL UNIQUE,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINEInnoDB DEFAULT CHARSETutf8mb4;-- 2. 用户表CREATE TABLE users (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password_hash VARCHAR(255) NOT NULL,email VARCHAR(100) NOT NULL UNIQUE,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINEInnoDB DEFAULT CHARSETutf8mb4;-- 3. 食材表CREATE TABLE food_items (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,name_cn VARCHAR(100) NOT NULL,name_en VARCHAR(100),category_id INT(11) UNSIGNED NOT NULL,image_url VARCHAR(255),created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,CONSTRAINT fk_food_category FOREIGN KEY (category_id)REFERENCES categories(id) ON DELETE RESTRICT ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_food_category ON food_items(category_id);-- 4. 食材营养信息表CREATE TABLE nutrition_info (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,food_item_id INT(11) UNSIGNED NOT NULL,calories INT(5) NOT NULL,protein_g DECIMAL(5,2) NOT NULL,fat_g DECIMAL(5,2) NOT NULL,carbohydrate_g DECIMAL(5,2) NOT NULL,CONSTRAINT fk_nutrition_food FOREIGN KEY (food_item_id)REFERENCES food_items(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_nutrition_food ON nutrition_info(food_item_id);-- 5. 菜谱表CREATE TABLE recipes (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,title_cn VARCHAR(200) NOT NULL,title_en VARCHAR(200),description_cn TEXT,description_en TEXT,prep_time_min INT(5) NOT NULL DEFAULT 0,cook_time_min INT(5) NOT NULL DEFAULT 0,servings INT(3) NOT NULL DEFAULT 1,created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP) ENGINEInnoDB DEFAULT CHARSETutf8mb4;-- 6. 菜谱食材关联表CREATE TABLE recipe_ingredients (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,recipe_id INT(11) UNSIGNED NOT NULL,food_item_id INT(11) UNSIGNED NOT NULL,quantity_g INT(7) NOT NULL DEFAULT 0,unit VARCHAR(10) NOT NULL DEFAULT g,CONSTRAINT fk_ri_recipe FOREIGN KEY (recipe_id)REFERENCES recipes(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_ri_food FOREIGN KEY (food_item_id)REFERENCES food_items(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_ri_recipe ON recipe_ingredients(recipe_id);CREATE INDEX idx_ri_food ON recipe_ingredients(food_item_id);-- 7. 用户偏好表CREATE TABLE user_preferences (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,user_id INT(11) UNSIGNED NOT NULL,preferred_cuisine_ids VARCHAR(255),allergy_food_ids VARCHAR(255),dietary_restrictions VARCHAR(255),CONSTRAINT fk_up_user FOREIGN KEY (user_id)REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_up_user ON user_preferences(user_id);-- 8. 用户健康数据表CREATE TABLE user_health_data (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,user_id INT(11) UNSIGNED NOT NULL,record_date DATE NOT NULL DEFAULT CURRENT_DATE(),weight_kg DECIMAL(5,2),blood_pressure_systolic INT(5),blood_pressure_diastolic INT(5),blood_sugar_mmol_l DECIMAL(5,2),CONSTRAINT fk_uhd_user FOREIGN KEY (user_id)REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_uhd_user ON user_health_data(user_id);CREATE INDEX idx_uhd_date ON user_health_data(record_date);-- 9. 饮食计划表CREATE TABLE meal_plans (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,user_id INT(11) UNSIGNED NOT NULL,plan_start_date DATE NOT NULL DEFAULT CURRENT_DATE(),plan_end_date DATE NOT NULL DEFAULT (CURRENT_DATE() INTERVAL 7 DAY),created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,CONSTRAINT fk_mp_user FOREIGN KEY (user_id)REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_mp_user ON meal_plans(user_id);-- 10. 饮食计划项表CREATE TABLE meal_plan_items (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,meal_plan_id INT(11) UNSIGNED NOT NULL,recipe_id INT(11) UNSIGNED NOT NULL,meal_time VARCHAR(20) NOT NULL DEFAULT Lunch,servings INT(3) NOT NULL DEFAULT 1,CONSTRAINT fk_mpi_mealplan FOREIGN KEY (meal_plan_id)REFERENCES meal_plans(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_mpi_recipe FOREIGN KEY (recipe_id)REFERENCES recipes(id) ON DELETE RESTRICT ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_mpi_mealplan ON meal_plan_items(meal_plan_id);CREATE INDEX idx_mpi_recipe ON meal_plan_items(recipe_id);-- 11. 推荐日志表CREATE TABLE recommendation_logs (id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,user_id INT(11) UNSIGNED NOT NULL,recipe_id INT(11) UNSIGNED NOT NULL,recommendation_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,feedback_score TINYINT(1),created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,CONSTRAINT fk_rl_user FOREIGN KEY (user_id)REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT fk_rl_recipe FOREIGN KEY (recipe_id)REFERENCES recipes(id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETutf8mb4;CREATE INDEX idx_rl_user ON recommendation_logs(user_id);CREATE INDEX idx_rl_recipe ON recommendation_logs(recipe_id);CREATE INDEX idx_rl_time ON recommendation_logs(recommendation_time);文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方获取联系方式

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑