摘 要
老年人膳食营养科普网站基于SpringBoot框架,提供注册登录、首页导航、公告通知、新闻资讯、食物信息推荐和膳食科普推荐等功能。用户可以进行饮食记录、在线反馈、点赞、收藏和评论,并通过多种社交平台分享内容。系统支持关键词搜索和筛选查找感兴趣的信息,自动置顶高点赞的热门内容。管理员负责用户账号管理、食物信息维护、膳食科普资料编辑、饮食记录审核及在线反馈处理,确保系统高效运行。此外,系统还具备轮播图管理、公告通知发布、新闻资讯管理和权限分配等高级功能,界面简洁易用,特别适合老年用户。该网站结合最新营养学研究成果和技术手段,旨在帮助老年人更好地理解和实践健康饮食习惯,提升生活质量。
关键词:老年人膳食营养科普网站,SpringBoot框架。
ABSTRACT
The elderly dietary nutrition science popularization website is based on the SpringBoot framework, providing functions such as registration and login, homepage navigation, announcement notifications, news and information, food information recommendations, and dietary science popularization recommendations. Users can record their diet, provide online feedback, like, bookmark, and comment, and share content through various social platforms. The system supports keyword search and filtering to find information of interest, and automatically ranks popular content with high likes. Administrators are responsible for managing user accounts, maintaining food information, editing dietary science materials, reviewing dietary records, and handling online feedback to ensure efficient system operation. In addition, the system also has advanced functions such as carousel management, announcement notification publishing, news information management, and permission allocation. The interface is simple and easy to use, especially suitable for elderly users. This website combines the latest nutritional research results and technological means to help elderly people better understand and practice healthy eating habits, and improve their quality of life.
Keywords: Elderly dietary nutrition popularization website, SpringBoot framework.
目 录
摘 要
ABSTRACT
引 言
1项目开发背景
1.1课题研究背景及意义
1.2国内外发展现状分析
2相关技术简介
2.1 JAVA技术
2.2 Mysql数据库
2.3 Springboot框架
3系统需求分析
3.1系统总体功能需求
3.2系统功能需求分析
3.2.1.前端主要功能
3.2.2.注册用户主要功能
3.2.3.管理员主要功能
3.3系统非功能性分析
3.4系统可行性分析
3.4.1技术可行性
3.4.2经济可行性
3.4.3操作可行性
3.5系统用例分析
3.5.1注册用户用例分析
3.5.2管理员用例分析
4系统设计
4.1系统总体设计思路
4.2系统结构设计
4.3系统功能设计
4.3.1用户登录流程
4.3.2用户评论食物信息操作流程
4.3.3用户发布反馈留言信息操作流程
4.4系统核心代码设计
4.4.1用户注册
4.4.2用户登录
4.4.3修改密码
4.4.4修改数据
4.4.5删除数据
4.4.6获取列表
4.4.7图片上传
4.5数据库设计
4.4.1数据库设计原则
4.4.2数据库实体
4.4.3数据库表设计
5系统实现
5.1前端功能实现
5.1.1首页
5.1.2食物信息
5.1.3膳食科普
5.1.4饮食记录
5.1.5在线反馈
5.2注册用户功能实现
5.2.1用户注册
5.2.2用户登录
5.2.3我的账户
5.2.4个人中心-饮食记录
5.2.5个人中心-在线反馈
5.3管理员功能实现
5.3.1食物信息管理
5.3.2在线反馈管理
5.3.3饮食记录管理
5.3.4 系统管理
5.3.5资源管理
6系统测试
6.1系统测试目标
6.2系统功能测试
6.3测试结果总结
结 论
参考文献
致 谢
引 言
随着社会老龄化的加剧,老年人的健康问题日益受到广泛关注,其中饮食营养作为维持健康的重要因素之一,更是成为社会各界关注的焦点。老年人由于身体机能的衰退和代谢的变化,对膳食营养有着更为特殊的需求。然而,当前市场上针对老年人膳食营养的专业指导和服务相对匮乏,许多老年人及其家属往往缺乏获取科学、实用的膳食营养知识的有效途径。因此,构建一个专门面向老年人群体的膳食营养科普平台显得尤为重要。这样的平台不仅能够提供丰富的膳食营养信息,还能根据老年人的具体需求推荐合适的饮食方案,帮助他们更好地理解和实践健康的饮食习惯。
基于这一背景,我们设计并实现了老年人膳食营养科普网站。该网站采用SpringBoot框架开发,集成了多种功能模块,包括注册登录、首页导航、公告通知、新闻资讯、食物信息推荐及膳食科普推荐等。通过这些功能,用户不仅可以轻松查找感兴趣的食物信息和膳食科普文章,还可以进行个性化的饮食记录和在线反馈。系统支持关键词搜索和筛选条件查找,自动置顶高点赞的热门内容,确保优质资源广泛传播。此外,为了增强用户的参与感和互动性,用户可以对自己喜爱的内容进行点赞、收藏和评论,并通过微信、朋友圈、QQ、微博等多种社交平台分享内容,促进用户间的交流与互动。对于管理员而言,后台管理功能同样强大,涵盖用户账号管理、食物信息维护更新、膳食科普资料编辑、饮食记录审核及在线反馈处理等操作,确保系统的高效运行和服务质量。整体来看,该网站旨在为老年人提供一个便捷、实用且科学的膳食营养学习平台,助力提升他们的生活质量。
1项目开发背景
1.1课题研究背景及意义
随着社会老龄化趋势的加剧,老年人群体的健康问题日益成为公共健康领域的关注焦点。老年人由于身体机能衰退和代谢变化,对膳食营养有着特殊的需求,合理的膳食结构不仅有助于维持身体健康,还能有效预防多种慢性疾病的发生和发展[1]。然而,当前市场上针对老年人膳食营养的专业指导和服务相对匮乏,许多老年人及其家属往往缺乏获取科学、实用膳食营养知识的有效途径。因此,构建一个专门面向老年人群体的膳食营养科普平台显得尤为重要。这样的平台不仅能提供丰富的膳食营养信息,还能根据老年人的具体需求推荐合适的饮食方案,帮助他们更好地理解和实践健康的饮食习惯。
在技术层面,开发这样一个网站需要综合运用多种现代信息技术。文件上传功能作为网站的重要组成部分之一,能够方便用户提交个人饮食记录或相关资料,从而为个性化服务奠定基础[2]。同时,确保数据的安全性是网站运行的关键环节之一,采用先进的数据库安全设计技术可以有效保护用户的个人信息不被泄露[3]。此外,不同地区老年人的膳食模式和营养状况存在显著差异,例如云南大理州白族老年人的膳食模式与认知功能之间的关系研究揭示了地域文化背景对膳食选择的影响[4];而关于膳食营养与长寿老年人骨骼肌质量的关系的研究则进一步强调了合理膳食对于维持老年人肌肉健康的重要性[5]。这些研究成果为网站内容的设计提供了宝贵的参考依据,使其能够根据不同人群的特点提供更加精准的服务。
为了全面了解老年人膳食结构及营养状况,还需要进行广泛的实地调研和数据分析。例如,吉林地区的研究表明,当地老年人膳食结构存在不合理之处,需针对性地提出改善建议[6];而在力量下降后的老年人中,如何科学膳食补充营养也成为亟待解决的问题[7]。这些实际案例不仅反映了老年人膳食营养问题的复杂性和多样性,也为网站的功能设计提供了现实依据。通过整合各地老年人膳食营养状况的研究成果,并结合具体社区的实际情况,如重庆市万州区某社区的调查所示,可以为老年人提供更为贴合实际需求的膳食指导[8]。
综上所述,建立老年人膳食营养科普网站不仅是满足老年人群体健康需求的必要措施,也是推动老年健康事业发展的有力手段。
1.2国内外发展现状分析
在国内,随着老龄化社会的加速到来,老年人膳食营养问题受到了越来越多的关注。国家出台了一系列政策,鼓励和支持老年营养教育和服务的发展,并积极推动相关科研机构和企业加大对老年人膳食营养研究的投入。各地社区也积极响应,通过举办健康讲座、发放宣传资料等多种形式,普及膳食营养知识,提高公众的认知度。此外,一些地方还设立了专门的老年营养服务中心,为老年人提供个性化的营养咨询和指导服务。然而,尽管取得了一定的成绩,仍存在信息不对称、服务覆盖面不足等问题,尤其是在偏远地区,资源匮乏使得老年人难以获取科学的膳食指导。因此,进一步加强资源整合和创新模式探索,以满足老年人日益增长的健康需求显得尤为迫切。
在国外,许多发达国家已经建立了较为完善的老年人膳食指导体系和服务网络。这些国家通过政府支持和社会组织的共同努力,制定了科学的膳食指南,并提供了广泛的公共教育活动,有效提高了老年人群的营养水平和生活质量。例如,一些国家设立了专门的营养咨询热线和在线平台,方便老年人及其家属随时获取专业的营养建议。此外,还有不少非营利组织定期开展针对老年人的健康促进项目,不仅包括膳食营养方面的指导,还涵盖了生活方式的改善等内容。这些措施显著提升了老年人对健康饮食的认识和实践能力。然而,即便如此,不同地区之间依然存在一定的差异,特别是在经济欠发达地区,仍需进一步努力确保所有老年人都能享受到高质量的膳食营养服务。这提示我们需要持续关注并优化资源配置,以实现更广泛的服务覆盖和更高的服务质量。
国内外在老年人膳食营养领域均取得了一定的进展,但各自面临不同的挑战。在国内,随着老龄化社会的到来,政府和社会各界对老年人健康的关注度不断增加,通过政策支持、社区活动和科研投入,积极推广膳食营养知识和服务,但仍存在信息不对称和服务覆盖面不足的问题,特别是在偏远地区资源匮乏。而在国外,许多发达国家已经建立了较为完善的膳食指导体系和服务网络,通过科学的膳食指南、广泛的公共教育和个性化的营养咨询服务,显著提升了老年人群的营养水平和生活质量,然而不同地区之间依然存在服务覆盖不均衡的现象。总体而言,尽管国内外在老年人膳食营养方面取得了显著成就,但仍需进一步加强资源整合和创新模式探索,以满足老年人日益增长的健康需求,并确保所有老年人都能享受到高质量的膳食营养服务。
2相关技术简介
2.1 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.2 Mysql数据库
数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。
2.3 Springboot框架
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,我们可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。
3系统需求分析
3.1系统总体功能需求
老年人膳食营养科普网站旨在通过集成先进的信息技术,为构建一个高效、稳定且易于扩展的膳食服务平台。系统总体功能性设计围绕膳食搭配的核心业务流程展开,主要包括以下几个功能模块:
(1)用户管理模块:
用户注册与登录:支持普通注册新用户账号,并通过用户名和密码登录系统。
个人资料:用户登录后可查看和修改自己的个人信息,如姓名、联系方式、头像等。
(2)食物信息管理模块:
食物信息展示与查询:展示各类型食物,并支持按条件查询。
食物信息编辑:管理员可添加、查询、删除食物信息,包括食物名称、推荐人群、营养成分、食物热量、食物图片等。
(3)膳食科普管理模块:
膳食科普展示与查询:展示各类型膳食,并支持按条件查询。
膳食科普编辑:管理员可添加、查询、删除膳食信息,包括膳食标题、发布时间、推荐人群、详情等。
(4)饮食记录管理模块:
用户记录饮食:用户可以记录饮食详细信息。
饮食记录编辑:管理员可添加、查询、删除饮食记录信息,包括记录标题、记录用户、用户姓名、记录日期、用餐类型、摄入食物、详情等。
在线反馈:用户可以进行在线反馈留言交流,管理员可以对用户的反馈内容进行审核。
反馈回复:管理员负责查看、回复和处理用户在系统中留言反馈。
3.2系统功能需求分析
老年人膳食营养科普网站包含前端跟后端,其中还后端包含注册用户、 管理员两个角色划分,主要功能如下:
3.2.1.前端主要功能
(1)首页:用户可以通过首页的导航栏进行网站功能的浏览,包括全网搜索、查看轮播图、公告通知、新闻资讯、食物推荐以及膳食科普推荐等。根据点赞数,系统会将膳食科普信息置顶,用户还可以修改个人资料。
(2)公告通知:用户可以查看网站发布的各类公告,如网站公告、关于我们、联系方式、网站介绍等信息。
(3)新闻资讯:用户可以查看管理员发布的新闻资讯、热门文章推荐等。通过筛选、排序等方式查找新闻资讯,并对感兴趣的内容进行点赞、收藏或评论。
(4)食物信息:用户可以查看各类食物的详细信息,包括食物名称、类型、推荐人群、营养成分和热量等。支持通过关键词、类型、排序等方式进行搜索,还可以点赞、收藏、评论以及分享至社交平台。
(5)膳食科普:用户可以查看各类膳食科普信息,进行内容搜索、筛选和排序。对感兴趣的膳食科普内容进行点赞、收藏、评论及回复,也可以分享至微信、QQ等社交平台。
(6)饮食记录:用户可以记录每日的饮食情况,输入食物名称、备注和用餐类型,提交饮食记录进行管理。
(7)在线反馈:用户可以通过反馈标题、内容和反馈类型提交意见或问题,系统会记录并反馈处理结果。
3.2.2.注册用户主要功能
(1)用户注册:浏览用户注册:在用户注册页面中填写好账号、设置密码、确认密码、昵称、邮箱、选择身份、用户姓名、性别、年龄等字段值,点击下方注册按钮,提示注册成功后,系统将自动跳转回到首页。
(2)用户登录:点击“登录”按钮,输入管理员审核通过后的用户名以及密码登录系统,登录时前端会自动校验用户名与密码,输入正确登录成功,输入错误会有提示信息。
(3)我的账户:包含个人资料修改跟密码修改,个人资料可修改头像等,修改密码:输入原始密码、新密码、确认密码点击保存即可修改成功。登录用新密码登录。
(4)个人中心:在老年人膳食营养科普网站的个人中心,个人首页集成了饮食记录、在线反馈、收藏与评论管理等功能,形成一个便捷的操作平台。通过这里,可以查看详细的饮食记录,并利用标题、姓名或性别等信息快速查找和管理个人饮食历史;同时,能追踪提交的在线反馈及其审核状态,确保沟通顺畅有效。收藏功能方便管理和回顾喜爱的食物信息及膳食科普文章,根据需要删除不再感兴趣的内容,保持收藏夹的整洁有序。此外,评论管理模块支持查看发布的评论及回复情况,通过昵称或内容搜索进行精准定位和操作。整个个人中心设计简洁高效,旨在帮助用户更好地理解和实践健康饮食习惯,提升生活质量。
3.2.3.管理员主要功能
(1)后台首页:管理员可以查看在线反馈统计折线图、个人信息管理和修改密码等操作,全面了解系统的运行状况。
(2)系统用户:管理员可以管理注册用户和管理员账号,包括增删改查操作,确保用户信息的准确性和安全性。
(3)食物信息管理:管理员可以查看和管理各类食物信息详情及用户评论,支持通过食物名称和类型进行搜索,并提供查询、删除等操作。管理员还可以添加新的食物信息,包括输入食物名称、推荐人群、营养成分和热量等进行提交添加。
(4)食物分类管理:管理员可以查看和管理各类食物分类列表详情,支持通过食物分类进行搜索,并提供查询、删除等操作。管理员还可以添加新的食物分类,只需输入食物分类进行提交添加。
(5)膳食科普管理:管理员可以查看和管理各类膳食科普列表详情及用户评论,支持通过膳食标题和类型进行搜索,并提供查询、删除等操作。管理员还可以添加新的膳食科普,包括输入膳食标题、发布时间和推荐人群等进行提交添加。
(6)膳食类型管理:管理员可以查看和管理各类膳食类型列表详情,支持通过膳食类型进行搜索,并提供查询、删除等操作。管理员还可以添加新的膳食类型,只需输入膳食类型进行提交添加。
(7)饮食记录管理:管理员可以查看各用户的饮食记录详情,支持通过用户姓名和性别进行搜索,并提供查询、删除等操作。
(8)在线反馈管理:管理员可以查看和管理各用户的在线反馈详情,支持通过反馈标题、用户姓名和审核状态进行搜索,并提供查询、删除等操作。管理员还可以审核在线反馈,确保问题得到及时处理。
(9)系统管理:轮播图管理:管理员可以查看和管理轮播图详情,支持通过标题进行搜索,并提供轮播图的增删改查操作。管理员还可以上传轮播图图片,输入标题和链接进行提交添加。
(10)公告通知管理:管理员可以查看和管理各类公告通知详情,支持通过标题进行搜索,并提供查询、删除、添加等操作。管理员可以输入标题和正文进行提交添加公告通知。
(11)资源管理:管理员可以查看和管理各类新闻资讯详情及用户评论,支持通过标题、标签和分类进行搜索,并提供查询、删除、添加等操作。管理员还可以上传封面图图片,输入标题、选择分类、输入标签、描述和正文进行提交添加新闻资讯。同时,管理员可以管理资讯分类详情,支持通过类型名称进行搜索,并提供查询、删除、添加等操作。
(12)权限管理:管理员可以管理权限列表,包括查看详情、对系统各用户的各类列表信息详情进行修改,通过权限名、选择用户组、添加权限、修改权限、删除权限和查询权限进行搜索,并提供查询、重置等操作。管理员可以根据业务需求灵活分配权限,保障系统的安全性和稳定性。
3.3系统非功能性分析
写老年人膳食营养科普网站毕业论文时,非功能性需求分析是一个重要的部分。非功能性需求主要关注的是系统如何运行,而不是它具体完成什么功能。这些需求包括性能、可用性、安全性、可维护性、可扩展性、易用性等方面。以下是一个关于老年人膳食营养科普网站非功能性需求分析的概要。
性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。
可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。
安全性:鉴于系统处理用户敏感信息,如个人信息,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。
可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。
可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。
易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。
3.4系统可行性分析
通过老年人膳食营养科普网站的可行性分析,我们可以从技术可行性、经济可行性和操作可行性三个维度进行深入探讨,以确保系统的开发与应用具有坚实的可行性基础。
3.4.1技术可行性
Springboot作为目前流行的Java企业级应用开发框架,以其“约定优于配置”的原则,极大地简化了开发流程,降低了技术门槛。MySQL数据库作为后端数据存储,以其高性能和稳定性为系统提供了可靠的数据支持。综上所述,从技术角度来看,该系统的开发具备高度可行性。
3.4.2经济可行性
考虑到Springboot、Java及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升膳食搭配的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.4.3操作可行性
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
从技术、经济、和操作三个维度来看,老年人膳食营养科普网站的开发均具备高度的可行性。
3.5系统用例分析
老年人膳食营养科普网站用例分析主要从注册用户,管理员这些实体展开描述。
3.5.1注册用户用例分析
注册用户的用例分析主要聚焦于用户能够通过注册和登录功能,创建并访问自己的个人账户。注册用户可以浏览首页,获取膳食营养相关信息,查看食物详情、膳食科普内容,并根据个人需求进行搜索、收藏、点赞、评论等操作。此外,用户能够记录每日饮食情况、提供反馈意见,确保网站内容与功能能够更好地服务老年人群体。个人账户管理功能使得用户能够随时修改个人资料,保证信息的准确性与安全性。通过这些功能,注册用户可以享受个性化的服务和便捷的操作体验,提升他们的膳食营养知识和健康管理。详细用例图如图3-1所示。

图3-1注册用户用例图
3.5.2管理员用例分析
管理员具备系统用户、食物信息管理、食物分类管理、膳食科普管理、膳食类型管理、饮食记录管理、在线反馈管理、系统管理、公告通知管理、资源管理、权限管理等需求用例。详细用例图如图3-2所示。

图3-2管理员用例图
4系统设计
4.1系统总体设计思路
基于SPRINGBOOT架构技术的老年人膳食营养科普网站采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图
其最终前后台交互原理如图4-2所示。
图4-2前后台交互原理
具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。
4.2系统结构设计
老年人膳食营养科普网站的整体结构设计如图4-3所示。
图4-3整体功能结构设计图
4.3系统功能设计
4.3.1用户登录流程
当注册用户进入登录页面时,当其在浏览器执行具体操作的时候,后端会同步显示,如图4-4所示。
图4-4登录流程图
4.3.2用户评论食物信息操作流程
当用户登录系统的时候,浏览食物信息,查看详情并评论生成评论信息,管理员在后端处理评论。注册用户评论食物信息流程如图4-5所示。

图4-5系统操作流程图
4.3.3用户发布反馈留言信息操作流程
用户可以自己发布反馈留言信息。发布反馈信息流程如图4-6所示。

图4-6添加信息流程图.
4.4系统核心代码设计
老年人膳食营养科普网站的核心代码设计如下:
4.4.1用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图4-7所示。

图4-7注册核心代码图
4.4.2用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图4-8所示。

图4-8用户登录核心代码图
4.4.3修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图4-9所示。

图4-9修改密码核心代码图
4.4.4修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图4-10所示。

图4-10修改数据核心代码图
4.4.5删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图4-11所示。

图4-11删除数据核心代码图
4.4.6获取列表
通过请求的参数获取列表数据,代码如图4-12所示。

图4-12获取列表核心代码图
4.4.7图片上传
通过请求的参数获取列表数据,代码如图4-13所示。

图4-13图片上传核心代码图
4.5数据库设计
4.4.1数据库设计原则
老年人膳食营养科普网站在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E-R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.4.2数据库实体
通过建立基于老年人膳食营养科普网站的E-R模型图。以此来设计详细的数据库资料实体,以下为具体图例:
(1)注册用户实体实体图如图4-14所示;
图4-14注册用户实体图
(2)食物信息实体图如图4-15所示;
图4-15食物信息实体图
(3)膳食科普实体图如图4-16所示;
图4-16膳食科普实体图
(4)数据库实体E-R图如图4-17所示:
图4-17数据库E-R图
4.4.3数据库表设计
以下为本课题开发过程中所使用的数据表结构:
表access_token (登陆访问时长)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
用户编号: |
表article (文章:用于内容管理系统的文章)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
文章描述 |
表article_type (文章分类)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
表auth (用户权限管理)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 |
|
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
表code_token
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y |
||
|
2 |
token |
varchar |
255 |
0 |
Y |
N |
||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 |
|
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
表collect (收藏)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
表comment (评论)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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: |
表dietary_records (饮食记录)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
dietary_records_id |
int |
10 |
0 |
N |
Y |
饮食记录ID |
|
|
2 |
record_title |
varchar |
64 |
0 |
Y |
N |
记录标题 |
|
|
3 |
record_users |
int |
10 |
0 |
Y |
N |
0 |
记录用户 |
|
4 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
5 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
6 |
record_date |
date |
10 |
0 |
Y |
N |
记录日期 |
|
|
7 |
meal_type |
varchar |
64 |
0 |
Y |
N |
用餐类型 |
|
|
8 |
ingestion_of_food |
varchar |
64 |
0 |
Y |
N |
摄入食物 |
|
|
9 |
intake_quantity |
varchar |
64 |
0 |
Y |
N |
摄入数量 |
|
|
10 |
remarks_details |
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 |
更新时间 |
表dietary_science_popularization (膳食科普)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
dietary_science_popularization_id |
int |
10 |
0 |
N |
Y |
膳食科普ID |
|
|
2 |
dietary_title |
varchar |
64 |
0 |
Y |
N |
膳食标题 |
|
|
3 |
dietary_types |
varchar |
64 |
0 |
Y |
N |
膳食类型 |
|
|
4 |
video_attachments |
varchar |
255 |
0 |
Y |
N |
视频附件 |
|
|
5 |
cover_photo |
varchar |
255 |
0 |
Y |
N |
封面图片 |
|
|
6 |
release_time |
datetime |
19 |
0 |
Y |
N |
发布时间 |
|
|
7 |
recommended_audience |
varchar |
64 |
0 |
Y |
N |
推荐人群 |
|
|
8 |
recipe_details |
longtext |
2147483647 |
0 |
Y |
N |
食谱详情 |
|
|
9 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
10 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
11 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
12 |
comment_len |
int |
10 |
0 |
N |
N |
0 |
评论数 |
|
13 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
14 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
15 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表dietary_types (膳食类型)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
dietary_types_id |
int |
10 |
0 |
N |
Y |
膳食类型ID |
|
|
2 |
dietary_types |
varchar |
64 |
0 |
Y |
N |
膳食类型 |
|
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表food_classification (食物分类)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
food_classification_id |
int |
10 |
0 |
N |
Y |
食物分类ID |
|
|
2 |
food_classification |
varchar |
64 |
0 |
Y |
N |
食物分类 |
|
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表food_information (食物信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
food_information_id |
int |
10 |
0 |
N |
Y |
食物信息ID |
|
|
2 |
food_name |
varchar |
64 |
0 |
Y |
N |
食物名称 |
|
|
3 |
food_type |
varchar |
64 |
0 |
Y |
N |
食物类型 |
|
|
4 |
cover_photo |
varchar |
255 |
0 |
Y |
N |
封面图片 |
|
|
5 |
recommended_audience |
varchar |
64 |
0 |
Y |
N |
推荐人群 |
|
|
6 |
nutritional_components |
varchar |
64 |
0 |
Y |
N |
营养成分 |
|
|
7 |
food_calories |
varchar |
64 |
0 |
Y |
N |
食物热量 |
|
|
8 |
food_details |
longtext |
2147483647 |
0 |
Y |
N |
食物详情 |
|
|
9 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
10 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
11 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
12 |
comment_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 |
更新时间 |
表hits (用户点击)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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: |
表notice (公告)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
表online_feedback (在线反馈)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
online_feedback_id |
int |
10 |
0 |
N |
Y |
在线反馈ID |
|
|
2 |
feedback_title |
varchar |
64 |
0 |
Y |
N |
反馈标题 |
|
|
3 |
feedback_to_users |
int |
10 |
0 |
Y |
N |
0 |
反馈用户 |
|
4 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
5 |
feedback_type |
varchar |
64 |
0 |
Y |
N |
反馈类型 |
|
|
6 |
feedback_time |
datetime |
19 |
0 |
Y |
N |
反馈时间 |
|
|
7 |
feedback_content |
text |
65535 |
0 |
Y |
N |
反馈内容 |
|
|
8 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
9 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
10 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
11 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
表praise (点赞)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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已取消 |
表registered_user (注册用户)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
registered_user_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_age |
varchar |
64 |
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 |
更新时间 |
表schedule (日程管理)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] |
|
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 |
|
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 |
|
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id |
|
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
表score (评分)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: |
|
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
表slides (轮播图)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
表upload (文件上传)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
文件类型 |
表user (用户账户:用于保存用户登录信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
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 |
创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
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 |
更新时间: |
5系统实现
5.1前端功能实现
5.1.1首页
首页:首页包含轮播图、食物信息推荐等,如图5-1所示。

图5-1首页界面图
5.1.2食物信息
食物信息:用户可以查看各类食物的详细信息,包括食物名称、类型、推荐人群、营养成分和热量等。支持通过关键词、类型、排序等方式进行搜索,还可以点赞、收藏、评论以及分享至社交平台,如图5-2所示。

图5-2食物信息界面图
5.1.3膳食科普
膳食科普:用户可以查看各类膳食科普信息列表详情,包括膳食标题、类型、发布时间和推荐人群等,并通过关键字搜索、膳食类型筛选和排序进行查找。用户可以对喜欢的膳食科普进行点赞、收藏和评论回复,并观看膳食视频附件,还能通过多种社交平台分享膳食科普内容,如图5-3所示。膳食科普详情如图5-4所示。

图5-3膳食科普列表界面图

图5-4膳食科普详情界面图
5.1.4饮食记录
饮食记录:用户可以通过输入记录标题、摄入食物、备注详情和选择用餐类型提交饮食记录,便于管理个人饮食习惯。饮食记录如图5-5所示。

、
图5-5 饮食记录界面图
5.1.5在线反馈
在线反馈:用户可以输入反馈标题、内容、选择反馈类型和时间提交反馈,方便与系统管理员沟通问题或建议。在线反馈如图5-6所示。

图5-6 在线反馈界面图
5.2注册用户功能实现
5.2.1用户注册
用户注册:输入账号、设置密码、确认密码、昵称、邮箱、选择用户身份、用户姓名、用户性别、用户年龄等用户个人信息,点击注册按钮进行注册,如图5-7所示。

图5-7用户注册界面图
5.2.2用户登录
用户登录:输入用户名跟密码点击登录按钮,校验通过后即可登录,用户登录如图5-8所示。

图5-8用户登录界面图
5.2.3我的账户
我的账户:包含个人资料修改跟退出登录,个人资料可修改头像等。我的账户如图5-9。

图5-9我的账户界面图
5.2.4个人中心-饮食记录
个人中心-饮食记录:查看前台记录的饮食详情,支持通过记录标题、用户姓名和性别进行搜索,并提供查询、重置等操作。饮食记录如图5-10。

图5-10 饮食记录界面
5.2.5个人中心-在线反馈
个人中心-在线反馈:查看前台的在线反馈留言详情和审核状态回复,支持通过反馈标题、用户姓名和审核状态进行搜索,并提供查询、重置等操作。在线反馈如图5-11。

图5-11 在线反馈界面
5.3管理员功能实现
5.3.1食物信息管理
食物信息管理:管理员可以查看和管理各类食物信息详情及用户评论,支持通过食物名称和类型进行搜索,并提供查询、删除等操作。管理员还可以添加新的食物信息,包括输入食物名称、推荐人群、营养成分和热量等进行提交添加。食物信息列表如图5-12所示。食物信息添加如图5-13所示。

图5-12 食物信息列表界面

图5-13食物信息添加界面
5.3.2在线反馈管理
在线反馈管理:管理员可以查看和管理各用户的在线反馈详情,支持通过反馈标题、用户姓名和审核状态进行搜索,并提供查询、删除等操作。管理员还可以审核在线反馈,确保问题得到及时处理。在线反馈列表如图5-14所示。审核回复如图5-15所示。

图5-14 在线反馈列表界面

图5-15 审核回复界面
5.3.3饮食记录管理
饮食记录管理:管理员可以查看各用户的饮食记录详情,支持通过用户姓名和性别进行搜索,并提供查询、删除等操作。饮食记录列表如图5-16所示。

图5-16 饮食记录列表界面
5.3.4 系统管理
轮播图管理:管理员可以查看和管理轮播图详情,支持通过标题进行搜索,并提供轮播图的增删改查操作。管理员还可以上传轮播图图片,输入标题和链接进行提交添加。轮播图列表如图5-17所示。

图5-17轮播图列表界面
5.3.5资源管理
资源管理:管理员可以查看和管理各类新闻资讯详情及用户评论,支持通过标题、标签和分类进行搜索,并提供查询、删除、添加等操作。管理员还可以上传封面图图片,输入标题、选择分类、输入标签、描述和正文进行提交添加新闻资讯。同时,管理员可以管理资讯分类详情,支持通过类型名称进行搜索,并提供查询、删除、添加等操作。新闻资讯如图5-18所示。

图5-18新闻资讯界面
6系统测试
6.1系统测试目标
为了保证“老年人膳食营养科普网站”的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如图5-1所示。

图6-1测试与纠错信息流程
6.2系统功能测试
通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。以下是详细的测试:
表6-1用户注册登录测试表
用户注册登录测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
用户注册、登录 |
测试用户正确注册、登录 |
|
用户注册成功,登录成功 |
结果输出符合预期 |
通过 |
表6-2食物信息评论测试表
食物信息评论测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
食物信息评论 |
测试食物信息评论 |
|
用户评论成功,生成评论信息 |
结果输出符合预期 |
通过 |
表6-3在线反馈重置测试表
在线反馈重置测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
在线反馈重置 |
测试用户反馈重置 |
|
重置新的反馈记录 |
结果输出符合预期 |
通过 |
表6-4膳食科普添加测试表
膳食科普添加测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
膳食科普添加测试 |
测试管理员添加膳食科普信息 |
|
膳食科普添加成功 |
结果输出符合预期 |
通过 |
表6-5反馈回复测试表
反馈回复测试用例:
|
用例说明 |
测试目的 |
测试步骤 |
预期结果 |
输出结果 |
通过情况 |
|
反馈回复测试 |
回复反馈信息 |
|
反馈回复信息处理成功 |
结果输出符合预期 |
通过 |
6.3测试结果总结
经过上述测试,并对测试数据结果综合分析。老年人膳食营养科普网站具备简便,数据透明等特性。完全符合膳食营养科普网站的要求。
结 论
在本文的老年人膳食营养科普网站的设计与实现过程中,通过SpringBoot框架的深入应用,我们成功构建了一个高效、可扩展的饮食管理平台,并得出了一些重要的结论。研究表明,采用微服务架构(如SpringBoot)能够显著提高系统的模块化和可维护性,加速开发进程,减少系统间的耦合度。实践证明,微服务架构在老年人膳食营养科普网站中的适用性,有效解决了传统单体架构面临的高并发、快速迭代等问题。
尽管系统取得了良好的成果,仍存在一些不足之处。例如,系统在处理大规模用户数据时,性能优化仍需进一步加强,以确保在高并发环境下能够稳定运行。此外,用户反馈机制也存在一定的不足,未来需要增加更多的互动功能,及时收集和响应用户需求。
展望未来,我们将继续优化系统性能,提升系统的稳定性和响应速度。同时,也将完善用户反馈机制,打造一个更加开放、互动、以用户为中心的膳食搭配平台。
参考文献
致 谢
在撰写这篇关于SpringBoot老年人膳食营养科普网站的毕业论文之际,我满怀感激之情,回顾整个设计过程,从最初的构想到最终的成果,每一步都凝聚了众多人的支持与帮助。
设计的初衷源于对现代旅游行业数字化转型的深刻洞察,我希望能通过技术的力量,为游客提供更加便捷、智能的度假体验。这个过程中,我经历了从无到有的创造,从理论学习到实践应用的跨越,不仅深化了我对SpringBoot框架的理解,也锻炼了我的系统设计与编程能力。
在此,我要特别感谢我的导师。是您的悉心指导与无私奉献,让我在迷茫时找到了方向,在困难前鼓起了勇气。您的严谨治学态度和深厚学术造诣,不仅让我在学术上受益匪浅,更在人生道路上树立了榜样。
我也要感谢我的同学们。我们一起熬夜讨论,一起解决难题,你们的陪伴与帮助,让我的大学生活更加丰富多彩。在团队合作中,我学会了沟通与协作,也更加珍惜这份难得的友谊。
我还要感谢我的家人。是你们的理解与支持,让我能够全身心地投入到学业中。在我遇到挫折时,是你们给予我温暖与鼓励,让我有勇气面对一切挑战。
展望未来,我将带着这份感激与收获,继续前行。我深知,技术的道路永无止境,我将不断学习新知识,掌握新技能,为未来的工作与研究打下坚实的基础。同时,我也希望能将所学应用到更广阔的领域,为社会的发展贡献自己的一份力量。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩 一键三连!!! 一键三连!!! 一键三连!!! 感谢一键三连!!!
网硕互联帮助中心








评论前必须登录!
注册