随着生活节奏的加快和饮食文化的多元化,人们对于健康饮食的需求日益增长。然而,如何制定一份既营养均衡又符合个人口味偏好的饮食计划,成为了许多人面临的挑战。传统的饮食规划方法往往依赖于个人的经验和知识,难以确保饮食的科学性和合理性。因此,开发一款基于Node.js的健康饮食规划系统,具有重要的现实意义和应用价值。
Node.js作为一种高效、灵活的服务器端JavaScript运行环境,具有强大的数据处理能力和丰富的生态系统,非常适合用于构建健康饮食规划系统。通过Node.js,我们可以轻松地整合各种营养学数据和食物信息,为用户提供个性化的饮食建议。同时,Node.js的异步处理能力使得系统能够高效响应大量用户的请求,保证了系统的稳定性和可扩展性。
本系统将结合现代营养学理论和计算机科学技术,通过收集和分析用户的身体状况、口味偏好、饮食习惯等信息,为用户生成科学、合理的饮食计划。用户可以通过系统提供的交互式界面,轻松查看和管理自己的饮食计划,同时也可以根据自己的需求随时调整和优化。
本文将详细介绍基于Node.js的健康饮食规划系统的设计与实现过程,包括系统需求分析、架构设计、数据库设计、关键技术实现等方面。通过本文的阅读,读者可以了解如何运用Node.js和相关技术构建一个功能完善、性能稳定的健康饮食规划系统,为人们的健康生活提供有力支持。
关键词:健康饮食规划系统;Node.js ;数据库设计
Design and Implementation of a Healthy Diet Planning System Based on Node.js
Abstract
With the acceleration of the pace of life and the diversification of dietary culture, people's demand for healthy eating is increasing day by day. However, how to develop a diet plan that is both nutritionally balanced and tailored to personal taste preferences has become a challenge for many people. Traditional dietary planning methods often rely on personal experience and knowledge, making it difficult to ensure the scientific and rational nature of diet. Therefore, developing a healthy diet planning system based on Node.js has important practical significance and application value.
Node.js, as an efficient and flexible server-side JavaScript runtime environment, has powerful data processing capabilities and a rich ecosystem, making it very suitable for building healthy diet planning systems. Through Node.js, we can easily integrate various nutritional data and food information to provide users with personalized dietary recommendations. Meanwhile, the asynchronous processing capability of Node.js enables the system to efficiently respond to a large number of user requests, ensuring the stability and scalability of the system.
This system will combine modern nutrition theory and computer science technology to collect and analyze user's physical condition, taste preferences, dietary habits, and other information, and generate scientific and reasonable dietary plans for users. Users can easily view and manage their dietary plans through the interactive interface provided by the system, and can also adjust and optimize them according to their needs at any time.
This article will provide a detailed introduction to the design and implementation process of a healthy diet planning system based on Node.js, including system requirement analysis, architecture design, database design, and key technology implementation. Through reading this article, readers can learn how to use Node.js and related technologies to build a fully functional and stable healthy diet planning system, providing strong support for people's healthy lives.
Key words: Healthy diet planning system; Node.js; Database design
第一章 绪 论
1.1选题背景和意义
在21世纪的今天,健康已经成为人们最为关注的话题之一。随着生活节奏的加快和工作压力的增大,越来越多的人开始意识到健康饮食的重要性。健康饮食不仅有助于预防各种慢性疾病,如肥胖、糖尿病、心血管疾病等,还能提高人们的生活质量和幸福感。然而,在现实生活中,很多人由于缺乏营养知识和时间,很难制定出既科学又符合个人需求的饮食计划。
基于这样的背景,开发一款能够帮助用户制定健康饮食计划的系统显得尤为重要。而Node.js作为一种高效、稳定的服务器端JavaScript运行环境,其强大的数据处理能力和丰富的生态系统使得它成为构建此类系统的理想选择。通过Node.js,我们可以轻松地整合各种营养学数据和食物信息,为用户提供个性化的饮食建议。
因此,该选题不仅具有重要的现实意义和应用价值,也符合当前科技发展的趋势和人们的需求。通过该系统的实现,我们不仅可以为用户提供更好的健康饮食服务,也可以推动相关技术的发展和创新。
1.2国内外研究现状
近年来,健康饮食规划系统在全球范围内受到了广泛的关注和研究。国内外的研究者和企业纷纷投入资源进行相关的探索和实践,以期能为用户提供更加科学、个性化的饮食建议。
国内研究现状
在国内,随着健康意识的提高,越来越多的研究者开始关注健康饮食规划系统的研究。一些团队基于Node.js等先进技术,尝试开发具有中国特色和适应中国人群需求的健康饮食规划系统。这些系统通常结合了中国传统的饮食文化和现代营养学知识,旨在为用户提供既符合口味又营养均衡的饮食方案。同时,一些国内的研究还关注了用户行为分析和推荐算法的研究,以提高饮食建议的针对性和有效性。
国外研究现状
在国外,健康饮食规划系统的研究同样得到了广泛的关注。一些知名的健康科技公司,如MyFitnessPal、Fitbit等,已经推出了成熟的健康饮食规划系统,这些系统通常与智能设备、社交媒体等相结合,为用户提供全方位的健康管理服务。此外,国外的研究者还关注了跨文化饮食习惯的研究,以适应不同国家和地区用户的需求。同时,随着人工智能和大数据技术的不断发展,国外的健康饮食规划系统也在不断优化和完善,以提供更加精准、个性化的服务。
综上所述,基于Node.js的健康饮食规划系统的设计与实现在国内外都得到了广泛的关注和研究。然而,目前的研究仍处在探索和发展的阶段,未来还需要进一步的深入研究和应用。通过不断的技术创新和实践探索,我们有望为用户提供更加科学、个性化的健康饮食规划服务。
1.3论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章为引言,此章节对所设计和实现的系统的背景和意义和开发现状进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前端客户功能和后端管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结
第二章 系统分析
2.1可行性分析
2.1.1技术可行性
通过采用Node.js技术,开发出一款功能强大、操作简便的健康饮食规划系统,同时还建立了一个完善、安全、可靠的后台数据库,以确保其运行的稳定性和可靠性。
通过采用Node.js技术和Mysql数据库,我们可以轻松实现健康饮食规划系统的设计,并且将用户角色有机地融入其中,这种创新的方式值得一试。此外,数据的完整性和多样性也为数据的有效分配和管理提供了坚实的基础。数据库安全平台是一个至关重要的组成部分,它不仅可以提升数据安全性,还可以通过提供更加灵活、智能、有效的基础控制方法,来实现对安全计算环境的支撑,从而确保数据的安全性。由于健康饮食规划系统拥有强大的功能、免费的特性以及出色的用户体验,因此它在技术上是一个可行的选择。
2.1.2经济可行性
健康饮食规划系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且在健康饮食规划系统的开发之前所做的市场调研及其他的健康饮食规划系统,都是没有任何费用的,通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于健康饮食规划系统的开发在经济上是完全可行的,没有任何费用支出的。
使用node.js技术是比较成熟的技术,所以健康饮食规划系统的开发在经济上是没有问题的。
2.1.3操作可行性
健康饮食规划系统设计完成后,其可操作性得到了显著提升,管理员可以轻松访问系统,快速管理各种数据信息,而用户也可以轻松访问系统界面,通过界面导航菜单,快速查看各个功能模块,满足用户的信息需求。此外,系统的操作也不再需要专业人员,只需要用户就可以轻松完成各个功能模块的操作管理。因此,我们的系统具有很高的可操作性。通过使用界面窗口,我们能够轻松地让用户进行登录。因此,只需要掌握基础的电脑操作技能,我们就能够满足您的需求。
2.2系统功能分析
2.2.1 功能性分析
按照健康饮食规划系统的角色,划分了注册用户、营养师用户、管理员这三大部分。
注册用户模块:
注册用户:提供用户注册功能,包括输入用户名、密码、个人信息等,确保用户信息的准确性和安全性。
首页:展示系统的主页内容,包括健康饮食相关的推荐内容、热门话题等,帮助用户了解系统的整体情况。
社交分享:允许注册用户在系统内进行社交分享,包括发布自己的饮食计划、分享健康饮食心得等,增进用户之间的交流与互动。
公告:系统发布的重要公告内容,包括系统更新、活动通知等,帮助用户获取重要信息。
健康资讯:提供用户健康饮食相关的资讯和文章,帮助用户了解健康饮食的重要性和相关知识。
反馈调整:用户可以对系统的功能提出反馈和调整建议,以便系统不断改进和完善。
用户信息:用户可以查看和编辑个人的基本信息,包括昵称、头像、联系方式等。
食物信息:系统提供丰富的食物信息库,包括各种食物的营养成分和热量等信息。
食谱搭配:系统提供健康饮食的食谱和搭配建议,帮助用户制定合理的饮食计划。
个人中心:提供个人定制化的功能,包括个人首页、咨询信息、饮食规划、饮食分析、用户信息、反馈评价、饮食记录、健康报告、收藏等,帮助用户进行个性化的健康饮食管理。
营养师用户模块:
首页:展示系统的主页内容,包括健康饮食相关的推荐内容、热门话题等,供营养师了解系统的整体情况和用户需求。
社交分享:允许营养师用户在系统内进行社交分享,包括分享专业的饮食建议、营养知识等,以提升专业形象和用户交流。
公告:系统发布的重要公告内容,包括系统更新、营养讲座通知等,帮助营养师用户获取重要信息。
健康资讯:提供营养师用户健康饮食相关的专业资讯和文章,帮助其不断更新专业知识和提升服务水平。
反馈调整:营养师用户可以对系统的功能提出专业的反馈和调整建议,以促进系统不断改进和完善。
用户信息:营养师用户可以查看和编辑个人的专业信息,包括执业证书、工作经历、专业资质等。
食物信息:系统提供丰富的食物信息库,包括各种食物的营养成分和热量等详细信息,供营养师用户参考和使用。
食谱搭配:系统提供健康饮食的食谱和搭配建议,供营养师用户参考和推荐给用户,以提升用户的饮食健康。
我的账户:营养师用户可以查看自己的账户余额和交易记录等信息,方便管理个人财务。
个人中心:提供个人定制化的功能,包括个人首页、咨询信息、食谱搭配、反馈评价、收藏等,帮助营养师用户进行专业化的服务管理和用户交流。
管理员管理模块:
登录:管理员需要通过安全的登录功能进行身份验证,以确保系统的安全性和管理权限。
后台首页:显示管理员后台的主页,包括系统概览、最新通知、待处理事项等内容,方便管理员了解系统运行情况。
系统用户管理:管理员可以管理系统中的用户信息,包括注册用户和营养师用户,包括添加、编辑、删除用户等操作,确保用户信息的完整性和准确性。
用户信息管理:管理员可以查看和编辑用户的个人信息,包括用户名、密码、联系方式等,以及用户的专业资质信息。
食物信息管理:管理员可以管理系统中的食物信息,包括添加、编辑、删除食物信息等,以保证食物信息的准确性和完整性。
食谱搭配管理:管理员可以管理系统提供的食谱和搭配建议,包括添加、编辑、删除食谱信息等,以提供用户健康饮食方面的专业指导。
咨询信息管理:管理员可以管理用户的咨询信息,包括查看、回复用户咨询等操作,以及对咨询信息进行分类和处理。
反馈评价管理:管理员可以管理用户的反馈和评价信息,包括查看、回复用户反馈等操作,以及对反馈信息进行统计和分析。
饮食规划管理:管理员可以管理系统提供的饮食规划信息,包括添加、编辑、删除饮食规划等操作,以提供用户个性化的健康饮食方案。
饮食记录管理:管理员可以管理用户的饮食记录信息,包括查看用户的饮食记录、添加、编辑、删除记录等操作,以提供用户健康饮食的数据支持。
饮食分析管理:管理员可以对用户的饮食数据进行分析和统计,以提供用户健康饮食方面的专业建议和指导。
健康报告管理:管理员可以生成用户的健康报告,包括饮食习惯分析、营养摄入评估等,以提供用户全面的健康评估和建议。
系统管理:管理员可以管理系统的相关设置,包括首页轮播图的添加、编辑、删除等操作,提升系统的用户体验。
留言管理:管理员可以管理用户在系统中留言的信息,包括查看、回复留言等操作,以及对留言信息进行分类和处理。
公告管理:管理员可以发布、编辑、删除系统的公告信息,包括系统更新、重要通知等内容,确保信息及时传达给用户。
资源管理:管理员可以管理系统提供的健康资讯内容和分类,包括添加、编辑、删除资讯信息等操作,以提供用户全面的健康知识服务。
2.2.2 非功能性分析
健康饮食规划系统的非功能性需求比如健康饮食规划系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1健康饮食规划系统非功能需求表
安全性 | 主要指健康饮食规划系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指健康饮食规划系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响健康饮食规划系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着健康饮食规划系统的页面展示内容进行操作,就可以了。 |
可维护性 | 健康饮食规划系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
通过2.2功能的分析,得出了健康饮食规划系统的用例图:
注册用户角色用例如图2-2所示。
图2-2健康饮食规划系统注册用户角色用例图
后端管理上的管理员是维护整个健康饮食规划系统中所有数据信息的。管理员角色用例如图2-3所示。
营养师用户角色用例如图2-4所示。
图2-4健康饮食规划系统营养师用户角色用例图
2.4系统操作流程
2.4.1用户登录流程
对于系统的安全性的第一关,就是用户想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,用户输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果用户输入的信息不正确,则窗口出现提示框,用户登录失败,返回到第一步进行重新输入,如图2-5所示。
图2-5登录操作流程图
2.4.2信息添加流程
对于健康饮食规划系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图2-6所示。
图2-6信息添加流程图
2.4.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图2-7所示。
图2-7信息删除流程图
第三章 系统总体设计
3.1系统架构设计
本健康饮食规划系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1 健康饮食规划系统架构设计图
表现层(UI):又称UI层,主要完成本健康饮食规划系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本健康饮食规划系统时的舒适度。UI的界面设计也要适应不同版本的健康饮食规划系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本健康饮食规划系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本健康饮食规划系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本健康饮食规划系统的数据存储和管理功能。
3.2开发流程设计
健康饮食规划系统的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从健康饮食规划系统的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图3-2所示。
图3-2开发系统流程图
3.3数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
3.3.1实体ER图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是数据库实体的E-R图如图3-3所示:
图3-3实体的E-R图
这些功能可以充分满足健康饮食规划系统的需求。此系统功能较为全面,系统功能结构图如3-4所示。
图3-4系统功能结构图
3.3.2数据表
我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使用户对数据和功能有更多要求。
基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑健康饮食规划系统的功能,而且组织比较清晰。数据表如下。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表consultation_information (咨询信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | consultation_information_id | int | 10 | 0 | N | Y | 咨询信息ID | |
2 | release_nutritionist | int | 10 | 0 | Y | N | 0 | 发布营养师 |
3 | recipe_name | varchar | 64 | 0 | Y | N | 食谱名称 | |
4 | recipe_types | varchar | 64 | 0 | Y | N | 食谱类型 | |
5 | suitable_population | varchar | 64 | 0 | Y | N | 适宜人群 | |
6 | number_of_food_types | varchar | 64 | 0 | Y | N | 食物种数 | |
7 | consulting_users | int | 10 | 0 | Y | N | 0 | 咨询用户 |
8 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
9 | consultation_content | text | 65535 | 0 | Y | N | 咨询内容 | |
10 | reply_content | text | 65535 | 0 | Y | N | 回复内容 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dietary_analysis_id | int | 10 | 0 | N | Y | 饮食分析ID | |
2 | enter_user | int | 10 | 0 | Y | N | 0 | 录入用户 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
6 | personnel_identity | varchar | 64 | 0 | Y | N | 人员身份 | |
7 | record_date | date | 10 | 0 | Y | N | 记录日期 | |
8 | record_name | varchar | 64 | 0 | Y | N | 记录名称 | |
9 | ingestion_weight | varchar | 64 | 0 | Y | N | 摄入重量 | |
10 | ingestion_of_food | text | 65535 | 0 | Y | N | 摄入食物 | |
11 | dietary_situation | text | 65535 | 0 | Y | N | 饮食情况 | |
12 | calories_intake | varchar | 64 | 0 | Y | N | 摄入热量 | |
13 | nutrient_composition | text | 65535 | 0 | Y | N | 营养成分 | |
14 | dietary_analysis | text | 65535 | 0 | Y | N | 饮食分析 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dietary_planning_id | int | 10 | 0 | N | Y | 饮食规划ID | |
2 | enter_user | int | 10 | 0 | Y | N | 0 | 录入用户 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
6 | personnel_identity | varchar | 64 | 0 | Y | N | 人员身份 | |
7 | goal_expectations | varchar | 64 | 0 | Y | N | 目标期望 | |
8 | concrete_content | text | 65535 | 0 | Y | N | 具体内容 | |
9 | dietary_plan | varchar | 64 | 0 | Y | N | 饮食计划 | |
10 | planned_time | varchar | 64 | 0 | Y | N | 计划时间 | |
11 | plan_content | text | 65535 | 0 | Y | N | 计划内容 | |
12 | dietary_pairing | text | 65535 | 0 | Y | N | 饮食搭配 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dietary_records_id | int | 10 | 0 | N | Y | 饮食记录ID | |
2 | enter_user | int | 10 | 0 | Y | N | 0 | 录入用户 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
6 | personnel_identity | varchar | 64 | 0 | Y | N | 人员身份 | |
7 | record_date | date | 10 | 0 | Y | N | 记录日期 | |
8 | record_name | varchar | 64 | 0 | Y | N | 记录名称 | |
9 | ingestion_weight | varchar | 64 | 0 | Y | N | 摄入重量 | |
10 | ingestion_of_food | text | 65535 | 0 | Y | N | 摄入食物 | |
11 | dietary_situation | text | 65535 | 0 | Y | N | 饮食情况 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | feedback_evaluation_id | int | 10 | 0 | N | Y | 反馈评价ID | |
2 | release_nutritionist | int | 10 | 0 | Y | N | 0 | 发布营养师 |
3 | recipe_name | varchar | 64 | 0 | Y | N | 食谱名称 | |
4 | recipe_types | varchar | 64 | 0 | Y | N | 食谱类型 | |
5 | suitable_population | varchar | 64 | 0 | Y | N | 适宜人群 | |
6 | number_of_food_types | varchar | 64 | 0 | Y | N | 食物种数 | |
7 | feedback_to_users | int | 10 | 0 | Y | N | 0 | 反馈用户 |
8 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
9 | evaluation_score | varchar | 64 | 0 | Y | N | 评价分数 | |
10 | evaluation_content | text | 65535 | 0 | Y | N | 评价内容 | |
11 | feedback_content | text | 65535 | 0 | Y | N | 反馈内容 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_information_id | int | 10 | 0 | N | Y | 食物信息ID | |
2 | food_name | varchar | 64 | 0 | Y | N | 食物名称 | |
3 | food_category | varchar | 64 | 0 | Y | N | 食物类别 | |
4 | food_images | varchar | 255 | 0 | Y | N | 食物图片 | |
5 | food_attributes | varchar | 64 | 0 | Y | N | 食物属性 | |
6 | food_calories | varchar | 64 | 0 | Y | N | 食物热量 | |
7 | suitable_audience | varchar | 64 | 0 | Y | N | 合适人群 | |
8 | nutrient_composition | text | 65535 | 0 | Y | N | 营养成分 | |
9 | introduction_to_methods | text | 65535 | 0 | Y | N | 做法介绍 | |
10 | food_introduction | longtext | 2147483647 | 0 | Y | N | 食物介绍 | |
11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
7 | title | varchar | 125 | 0 | N | N | 标题 | |
8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
12 | img | text | 65535 | 0 | Y | N | 封面图 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | health_report_id | int | 10 | 0 | N | Y | 健康报告ID | |
2 | enter_user | int | 10 | 0 | Y | N | 0 | 录入用户 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
6 | personnel_identity | varchar | 64 | 0 | Y | N | 人员身份 | |
7 | personnel_height | varchar | 64 | 0 | Y | N | 人员身高 | |
8 | personnel_weight | varchar | 64 | 0 | Y | N | 人员体重 | |
9 | low_blood_pressure | varchar | 64 | 0 | Y | N | 血压低压 | |
10 | high_blood_pressure | varchar | 64 | 0 | Y | N | 血压高压 | |
11 | blood_glucose_values | varchar | 64 | 0 | Y | N | 血糖数值 | |
12 | dietary_preferences | text | 65535 | 0 | Y | N | 饮食偏好 | |
13 | health_trends | text | 65535 | 0 | Y | N | 健康趋势 | |
14 | preference_analysis | text | 65535 | 0 | Y | N | 偏好分析 | |
15 | health_report | text | 65535 | 0 | Y | N | 健康报告 | |
16 | report_file | varchar | 255 | 0 | Y | N | 报告文件 | |
17 | dietary_advice | text | 65535 | 0 | Y | N | 饮食建议 | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_id | int | 10 | 0 | N | Y | 留言板ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
3 | title | varchar | 64 | 0 | Y | N | 标题: | |
4 | content | longtext | 2147483647 | 0 | N | N | 内容: | |
5 | nickname | varchar | 32 | 0 | N | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像: | |
7 | | varchar | 125 | 0 | Y | N | 留言者邮箱 | |
8 | phone | varchar | 11 | 0 | Y | N | 留言者手机号码 | |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
11 | reply | longtext | 2147483647 | 0 | Y | N | 回复 | |
12 | reply_state | tinyint | 4 | 0 | Y | N | 0 | 回复状态 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | nutritionist_users_id | int | 10 | 0 | N | Y | 营养师用户ID | |
2 | nutritionists_name | varchar | 64 | 0 | Y | N | 营养师姓名 | |
3 | gender_of_nutritionist | varchar | 64 | 0 | Y | N | 营养师性别 | |
4 | nutritionist_qualifications | varchar | 255 | 0 | Y | N | 营养师资质 | |
5 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | recipe_pairing_id | int | 10 | 0 | N | Y | 食谱搭配ID | |
2 | release_nutritionist | int | 10 | 0 | Y | N | 0 | 发布营养师 |
3 | recipe_name | varchar | 64 | 0 | Y | N | 食谱名称 | |
4 | recipe_types | varchar | 64 | 0 | Y | N | 食谱类型 | |
5 | suitable_population | varchar | 64 | 0 | Y | N | 适宜人群 | |
6 | number_of_food_types | varchar | 64 | 0 | Y | N | 食物种数 | |
7 | recipe_images | varchar | 255 | 0 | Y | N | 食谱图片 | |
8 | recipe_ingredients | text | 65535 | 0 | Y | N | 食谱主料 | |
9 | recipe_excipients | text | 65535 | 0 | Y | N | 食谱辅料 | |
10 | recipe_preparation | text | 65535 | 0 | Y | N | 食谱做法 | |
11 | dietary_advice | text | 65535 | 0 | Y | N | 饮食建议 | |
12 | recipe_pairing | text | 65535 | 0 | Y | N | 食谱搭配 | |
13 | recipe_details | longtext | 2147483647 | 0 | Y | N | 食谱详情 | |
14 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
15 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_phone_number | varchar | 16 | 0 | Y | N | 用户电话 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_information_id | int | 10 | 0 | N | Y | 用户信息ID | |
2 | enter_user | int | 10 | 0 | Y | N | 0 | 录入用户 |
3 | personnel_name | varchar | 64 | 0 | Y | N | 人员姓名 | |
4 | age_of_personnel | varchar | 64 | 0 | Y | N | 人员年龄 | |
5 | gender_of_personnel | varchar | 64 | 0 | Y | N | 人员性别 | |
6 | personnel_identity | varchar | 64 | 0 | Y | N | 人员身份 | |
7 | measurement_date | date | 10 | 0 | Y | N | 测量日期 | |
8 | personnel_height | varchar | 64 | 0 | Y | N | 人员身高 | |
9 | personnel_weight | varchar | 64 | 0 | Y | N | 人员体重 | |
10 | low_blood_pressure | varchar | 64 | 0 | Y | N | 血压低压 | |
11 | high_blood_pressure | varchar | 64 | 0 | Y | N | 血压高压 | |
12 | blood_glucose_values | varchar | 64 | 0 | Y | N | 血糖数值 | |
13 | dietary_preferences | text | 65535 | 0 | Y | N | 饮食偏好 | |
14 | exercise_habits | text | 65535 | 0 | Y | N | 运动习惯 | |
15 | personal_history | text | 65535 | 0 | Y | N | 个人病史 | |
16 | goal_expectations | varchar | 64 | 0 | Y | N | 目标期望 | |
17 | concrete_content | text | 65535 | 0 | Y | N | 具体内容 | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
第四章 系统详细设计与实现
4.1注册用户功能模块
4.1.1用户登录界面
用户登录,用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如下图所示。

图4-1用户登录界面图
登录的关键代码如下:
const md5 = require("md5");
var Controller = require("../core/controller.js");
class Login extends Controller {
constructor(config) {
super(
Object.assign({
tpl: "./login/",
service: "user",
},
config
)
);
}
}
Login.prototype.api = async function(ctx) {
var body = ctx.request.body;
var obj = await $.services["user"].get_obj({
username: body.username
},{like:false});
if (obj) {
var group = await $.services["user_group"].get_obj({
name:obj.user_group
})
if (group){
if (group.name!=="管理员"){
var sql = "select examine_state from "+ group.source_table +" WHERE user_id = " + obj.user_id;
var userExamine = await $.mysql.run(sql);
if (userExamine && userExamine.length > 0 && userExamine[0].examine_state!=="已通过"){
return {
error: {
code: 70000,
message: "该用户审核未通过"
},
};
}
}
if (obj.state!==1){
return {
error: {
code: 70000,
message: "用户非可用状态,不能登录"
},
};
}
var password = md5(body.password);
if (password === obj.password) {
ctx.session.user = obj;
var date = Date.parse(new Date());
var token = md5(obj.user_id + "_" + date);
await $.services["access_token"].add({
token,
info: JSON.stringify(obj),
user_id:obj.user_id
});
obj.token = token;
return {
result: {obj}
};
} else {
return {
error: {
code: 70000,
message: "密码错误"
},
};
}
}else {
return {
error: {
code: 70000,
message: "用户组不存在"
},
};
}
} else {
return {
error: {
code: 70000,
message: "账户不存在"
}
};
}
};
4.1.2用户注册界面
注册,通过填写密码、昵称、邮箱、性别、姓名、电话等信息,输入完成后选择提交即可注册成功,如下图所示。

图4-2注册界面图
注册的关键代码如下:
Register.prototype.index = async function(ctx) {
var group_list = await $.services["user_group"].get_list({}, Object.assign({}, this.config));
return await ctx.render(this.config.tpl + "index.html", {
group_list
});
};
Register.prototype.api = async function(ctx) {
var user = $.services.user;
var body = ctx.request.body;
var username = body.username;
var obj = await user.get_obj({
username
});
if (obj) {
return {
error: {
code: 70000,
message: "账户名已存在",
},
};
} else {
var password = md5(body.password);
var nickname = body.nickname;
var user_group = body.user_group;
var email = body.email;
var email_state= body.hasOwnProperty('email_state') ? body.email_state : 0;
var phone = body.phone;
var phone_state= body.hasOwnProperty('phone_state') ? body.phone_state : 0;
var avatar = body.avatar;
var bl_reg = await user.add({
username,
password,
nickname,
user_group,
email,
email_state,
phone,
phone_state,
avatar
});
if (bl_reg) {
return {
result: "注册成功"
};
} else {
return {
error: {
code: 70000,
message: "注册失败",
},
};
}
}
};
4.1.3前台首页界面
前台首页,用户进入健康饮食规划系统,可以对首页、社交分享、公告、健康资讯、反馈调整、用户信息、食物信息、食谱搭配、我的账户、个人中心(个人首页、咨询信息、饮食规划、饮食分析、用户信息、反馈评价、饮食记录、健康报告、收藏)等功能模块进行相对应操作,如下图所示。

图4-3前台首页界面图
4.1.4食物信息界面
食物信息,用户可以查看系统提供丰富的食物信息库,包括各种食物的营养成分和热量等信息。如下图所示。

图4-4食物信息界面图
4.2营养师用户功能模块
4.2.1咨询信息界面
咨询信息,营养师用户可以查看用户咨询信息,进行回复和提供专业建议,以满足用户的健康饮食需求。如下图所示。

图4-5咨询信息界面图
4.2.2反馈评价界面
反馈评价,营养师用户可以查看用户的反馈和评价信息,包括用户对饮食计划的效果、满意度等,以不断改进服务质量。如下图所示。

图4-6反馈评价界面图
4.3 管理员功能模块
4.3.1管理员登录界面
管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名、密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如下图所示。

图4-7管理员登录主界面图
4.3.2管理员功能界面
管理员登陆系统后,可以对:后台首页、系统用户、用户信息管理、食物信息管理、食谱搭配管理、咨询信息管理、反馈评价管理、饮食规划管理、饮食记录管理、饮食分析管理、健康报告管理、系统管理、留言管理、公告管理、资源管理等功能模块进行相对应操作,如下图所示。

图4-8管理员首页功能界面图
4.3.3系统用户界面
系统用户管理,管理员可以管理系统中的用户信息,包括注册用户和营养师用户,包括添加、编辑、删除用户等操作,确保用户信息的完整性和准确性。如下图所示。

图4-9系统用户界面图
4.3.4饮食规划管理界面
饮食规划管理,管理员可以管理系统提供的饮食规划信息,包括添加、编辑、删除饮食规划等操作,以提供用户个性化的健康饮食方案。如下图所示。

图4-10饮食规划管理界面图
4.3.5饮食记录管理界面
饮食记录管理,管理员可以管理用户的饮食记录信息,包括查看用户的饮食记录、添加、编辑、删除记录等操作,以提供用户健康饮食的数据支持。如下图所示。

图4-11饮食记录管理界面图
饮食记录的关键代码如下:
Controller.prototype.add = async function(ctx) {
var result = await this.service.add(ctx.request.body, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
删:
Controller.prototype.del = async function(ctx) {
if (!Object.keys(ctx.query).length) {
return {
code: 30000,
message: "删除条件不能为空!",
};
}
var result = await this.service.del(ctx.request.query, this.config);
if (this.service.error) {
return {
error: this.service.error,
};
}
return {
result,
};
};
改:
Service.prototype.set = async function(query, body, config) {
var sql = $.mysql.toSetSql(query, body, Object.assign({}, this.config, config || {}));
var ret = await this.run(sql);
return ret;
};
4.3.6系统管理界面
系统管理,管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。如下图所示。

图4-2系统管理界面图
轮播图上传的关键代码如下:
Controller.prototype.upload = async function(ctx) {
var req = ctx.request;
var query = req.query;
var url = "";
if (req.files && req.files.file) {
var f = req.files.file;
const render = fs.createReadStream(f.path);
var name = f.name;
var dir = f.dir || "";
var file = _dir + dir + name;
try {
if (fs.existsSync(file)) {
var arr = name.split(".");
name = arr[0];
var extension = arr[arr.length - 1];
var num = 10000;
for (var i = 0; i < num; i++) {
var na = name + "_" + (i + 1) + "." + extension;
file = path.join(_dir, na);
if (!fs.existsSync(file)) {
name = na;
break;
}
}
}
const upStream = fs.createWriteStream(file);
render.pipe(upStream);
url = _path + name;
} catch (e) {
console.log("上传失败:", e);
}
return {
result: {
url
}
};
} else {
return {
code: 10000,
message: "上传的文件(file)不能为空!",
};
}
};
第五章 系统的测试
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些错误,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、健康资讯查看功能测试、添加食物信息、密码修改功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
健康资讯查看功能测试:
表5-2 健康资讯查看功能测试表
用例名称 | 健康资讯查看 |
目的 | 测试健康资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击健康资讯 |
预期结果 | 可以查看到所有健康资讯 |
实际结果 | 实际结果与预期结果一致 |
管理员添加食物信息:
表5-3 管理员添加食物信息界面测试表
用例名称 | 食物信息发布测试用例 |
目的 | 测试食物信息指发布功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击食物信息管理,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的食物信息 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-4密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写健康饮食规划系统的测试用例,已经检测完毕用户登录功能测试、健康资讯查看功能测试、添加食物信息、密码修改功能测试,通过这些测试为健康饮食规划系统的后期推广运营提供了强力的技术支撑。
结 论
经过了几个月的努力,健康饮食规划系统终于完成了,虽然在校期间也开发过一些小型的小程序,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此开发健康饮食规划系统对我意义重大。
在开发系统最初,首先对各个健康饮食规划系统方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足健康饮食规划管理需求,对需求进行分析;其次选择自己比较熟悉的Nodejs语言,MYSQL数据库来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对Nodejs的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
[1]李淑玲,朱彤.基于Node.js技术的在线测试系统设计方案[J].科技资讯,2023,21(19):35-38.DOI:10.16661/j.cnki.1672-3791.2303-5042-5997.
[2]胡娟,蒲源.基于Node.js的低代码人脸识别系统的设计与实现[J].电脑知识与技术,2023,19(28):14-17.DOI:10.14004/j.cnki.ckt.2023.1504.
[3]张猛,何姗姗.基于Vue+Node.js的智能小区数据管理系统设计与实现[J].电脑知识与技术,2023,19(14):46-49+53.DOI:10.14004/j.cnki.ckt.2023.0730.
[4]D. K K ,D. N T .Complementing JavaScript in High-Performance Node.js and Web Applications with Rust and WebAssembly[J].Electronics,2022,11(19):3217-3217.
[5]布宇凡.基于Node.js的船舶信息管理系统的设计与实现[D].北京邮电大学,2022.DOI:10.26969/d.cnki.gbydu.2022.000688.
[6]闵亮,薛格格,张玉欣,等.基于Node.JS博客系统的设计与实现[J].电子设计工程,2022,30(07):37-41.DOI:10.14022/j.issn1674-6236.2022.07.008.
[7]陈明雪,赵勇,周小丽,等.基于Node.js和Bootstrap的图书管理系统设计与研究[J].现代信息科技,2021,5(24):12-15.DOI:10.19850/j.cnki.2096-4706.2021.24.004.
[8]赵婉琳,彭仕霖,杜孟新.基于Node.js的汽车数据中台系统的设计与实现[J].仪器仪表标准化与计量,2021,(05):23-26.
[9]吴戴明,健康饮食管理系统V1.0.陕西省,西安鼎顺物联网科技有限公司,2021-07-01.
[10]杨涛.基于Node.js的高并发电商购物系统设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.002805.
[11]魏榆静.基于node.js的股票行情浏览及分析系统的设计与实现[D].山东大学,2021.DOI:10.27272/d.cnki.gshdu.2021.003827.
[12]王粤.基于多特征的健康饮食推荐系统的设计与实现[D].重庆邮电大学,2021.DOI:10.27675/d.cnki.gcydx.2021.000832.
[13]陈荣鑫.基于NodeJS+Express框架的学院会议室预定系统设计与开发[J].信息与电脑(理论版),2021,33(02):95-97.
[14]高改丽.基于Node.js的在线竞赛系统的设计与实现[D].西安电子科技大学,2020.DOI:10.27389/d.cnki.gxadu.2020.002167.
[15]刘丰.基于全栈平台NodeJS的矿场综合管理系统的设计与实现[D].华中师范大学,2020.DOI:10.27159/d.cnki.ghzsu.2020.002358.
[16]Manduchi G ,Luchetta A ,Moro G , et al.Web-based streamed waveform display using MDSplus events and Node.js[J].Fusion Engineering and Design,2020,157111625-111625.
[17]Faried E ,Taufik ,Bramantyo A .Performance Comparison of Web Backend And Database: A Case Study Of Node.JS, Golang and MySQL, MongoDB[J].Recent Advances in Computer Science and Communications,2019,13
[18]黄云洁.基于Node.js的商品包装管理系统的设计与实现[D].华中科技大学,2020.DOI:10.27157/d.cnki.ghzku.2020.006239.
[19]Kyriakou D K ,Tselikas D N ,Kapitsaki M G .Enhancing C/C++ based OSS development and discoverability with CBRJS: A Rust/Node.js/WebAssembly framework for repackaging legacy codebases[J].The Journal of Systems Software,2019,157110395-110395.
[20]Software and Systems Research; Recent Studies from University of Peloponnese Add New Data to Software and Systems Research (Enhancing C/C++ based OSS development and discoverability with CBRJS: A Rust/Node.js/WebAssembly framework for repackaging legacy codebases)[J].Computer Technology Journal,2019,
致 谢
健康饮食规划系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
健康饮食规划系统的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在健康饮食规划系统的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。
在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~