摘 要
本论文旨在研究和设计一种基于Spring Boot的美食分享系统。随着社交媒体的普及,人们对于美食的分享和探索需求不断增加。然而,现有的美食分享平台存在一些问题,如用户体验不佳、功能不完善等。因此,本论文提出了一种基于Spring Boot的美食分享系统,旨在提供更好的用户体验和更丰富的功能。
本论文首先介绍了美食分享系统的背景和意义。接着,通过对现有美食分享平台的分析,总结了其存在的问题和不足之处。然后,详细介绍了Spring Boot框架的特点和优势,并解释了为什么选择Spring Boot作为系统开发的基础。
在系统设计方面,本论文提出了一种基于Spring Boot的美食分享系统架构。该架构包括前端界面设计、后端数据库设计以及系统功能模块划分等内容。同时,还介绍了系统所使用的技术栈,如MySQL数据库、java语言等。
在系统实现方面,本论文详细介绍了系统各个功能模块的具体实现方法。其中包括用户注册与登录、美食发布与浏览、评论与点赞等功能。同时,还介绍了系统的安全性设计和性能优化措施。
最后,本论文对所设计的美食分享系统进行了测试和评估。通过对系统的功能、性能和用户体验等方面进行测试,验证了系统的可行性和有效性。
关键词:美食分享;Springboot框架;Mysql数据库
Springboot Food Sharing System
Abstract
This paper aims to research and design a food sharing system based on Spring Boot. With the popularization of social media, people's demand for sharing and exploring delicious food is constantly increasing. However, there are some issues with existing food sharing platforms, such as poor user experience and incomplete functionality. Therefore, this paper proposes a food sharing system based on Spring Boot, aiming to provide a better user experience and richer functions.
This paper first introduces the background and significance of the food sharing system. Then, by analyzing the existing food sharing platforms, the existing problems and shortcomings were summarized. Then, it detailed the characteristics and advantages of the Spring Boot framework, and explained why Spring Boot was chosen as the foundation for system development.
In terms of system design, this paper proposes a food sharing system architecture based on Spring Boot. This architecture includes front-end interface design, back-end database design, and system functional module division. At the same time, it also introduced the technology stack used by the system, such as MySQL database, Java language, etc.
In terms of system implementation, this paper provides a detailed introduction to the specific implementation methods of each functional module of the system. This includes functions such as user registration and login, food posting and browsing, comments and likes. At the same time, the security design and performance optimization measures of the system were also introduced.
Finally, this paper tested and evaluated the designed food sharing system. The feasibility and effectiveness of the system were verified by testing its functionality, performance, and user experience.
Keywords: Food sharing; Springboot framework; MySQL database
目录
一、绪论
(一)选题背景与意义
美食是人们生活中重要的一部分,而美食分享则成为了社交媒体上热门的话题之一。随着社交媒体的普及和互联网技术的发展,越来越多的人开始通过在线平台分享自己的美食经验、推荐好吃的餐厅、交流烹饪技巧等。然而,现有的美食分享平台存在一些问题,如用户体验不佳、功能不完善等。
因此,设计和开发一种基于Spring Boot的美食分享系统具有重要的意义。首先,该系统可以提供更好的用户体验,通过简洁直观的界面和友好的操作方式,使用户能够方便地浏览和分享美食内容。其次,该系统可以提供更丰富的功能,如用户注册与登录、美食发布与浏览、评论与点赞等,满足用户在美食分享方面的多样化需求。
此外,美食分享系统还可以促进美食文化的传播和交流。通过用户的分享和推荐,可以让更多的人了解到各地的特色美食和餐厅,激发他们对美食的兴趣和探索欲望。同时,用户之间的互动和交流也可以促进美食文化的交流和碰撞,推动美食文化的发展和创新。
综上所述,设计和开发一种基于Spring Boot的美食分享系统具有重要的实际意义和研究价值。通过提供更好的用户体验和丰富的功能,该系统可以满足用户在美食分享方面的需求,促进美食文化的传播和交流,推动美食文化的发展和创新。
(二)美食分享系统国内外发展现状
国内发展现状
美团、大众点评等平台:这些平台提供了用户发布餐厅评价和美食推荐的功能,用户可以通过这些平台查找附近的餐厅、浏览其他用户的评价和推荐,并进行点评和打分。这些平台在国内具有较高的知名度和用户数量。
食全食美:食全食美是中国一家专注于美食分享的平台,用户可以在该平台上发布自己的美食照片、评价和推荐,并参与美食话题讨论。
国外发展现状
Yelp:Yelp是美国一家知名的美食分享平台,用户可以在该平台上发布餐厅评价、上传照片并与其他用户进行交流。Yelp还提供了搜索功能,用户可以根据地理位置、菜系等条件查找餐厅。
Instagram:Instagram是全球最受欢迎的图片分享社交平台之一,许多用户在其上分享自己制作或品尝的美食照片。用户可以使用特定的标签和地理位置信息来分类和搜索美食内容。
Cookpad:Cookpad是日本一家专注于家庭烹饪分享的平台,用户可以在该平台上发布自己的烹饪食谱、分享烹饪心得,并与其他用户进行交流和互动。
总体而言,国内外的美食分享系统在功能和用户体验方面都有不同程度的发展。这些平台通过提供用户友好的界面、丰富的功能和社交互动,满足了用户对美食分享和探索的需求。然而,仍然存在一些问题,如信息真实性的验证、个人隐私保护等,需要进一步的研究和改进。因此,设计和开发一种基于Spring Boot的美食分享系统具有重要的实际意义和研究价值。
二、 需求分析
(一)业务需求分析
美食中心模块是美食分享系统当中最重要的一个模块,这个模块主要是管理员添加美食中心信息,用户实现在线查看美食中心、以及对美食中心进行点赞收藏或者评论的功能,在这个模块当中涉及到了管理员用户这两种角色,用户进行注册,管理员对这用户角色进行管控,同时实现用户提交留言信息,从而实现管理员回复留言这一主要功能。
(二)功能需求分析
美食分享系统划分为了用户模块和管理员模块这两大部分。
用户模块:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现用户留言等操作,就必须有这个系统的账号,如果没有账号的话,可以注册以后进行相关的操作,同时用户还可以通过“我的”这以按钮对个人信息以及操作的信息进行管控。
(2)查看美食分享系统的首页信息:美食分享系统的首页信息包含了首页、交流论坛、美食公告、美食资讯、用户留言、美食中心。
(3)交流论坛::用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。
(4)美食公告:用户可以查看后台管理员发布的美食公告信息,在查询到自己想要了解的美食公告的时候,可以进入查看详细的介绍。
(5)美食资讯:用户可以查看美食资讯信息,在查询到自己想要了解的美食资讯的时候,可以进入查看详细的介绍进行评论、点赞、收藏操作。
(6)用户留言:用户点击“用户留言”菜单输入留言标题、内容、用户名等信息提交,同时可以查看管理员回复的留言内容。
(7)美食中心:用户可以查看美食中心,在查询到自己想要了解的美食中心的时候,可以进入查看详细的介绍,在美食中心详情这个界面,同时支持用户对喜欢的美食中心进行收藏、点赞、评论的功能。
(8)我的账户:在前台点击“我的”下面的“我的账户”可以对个人资料+密码修改+自己收藏的信息进行管控。
图2-1就是用户角色的用例展示。
图2-1 美食分享系统用户角色用例图
管理员模块:
(1)系统用户:管理员可以对美食分享系统中的管理员以及前台注册的用户进行管控。
(2)美食类型:管理员点击“美食类型”可以查看自己添加的美食类型,可以对已有的美食类型进行维护,也可以点击“添加”按钮,新建新的美食类型,添加好的美食类型,在首页“美食类型”模块下就可以展示出来。
(3)美食中心:管理员点击“美食中心”可以查看自己添加的美食中心信息,可以对已有的美食中心信息进行维护,也可以点击“添加”按钮,新建新的美食中心信息,添加好的美食中心信息,在首页“美食中心”模块下就可以展示出来。
(3)系统管理:管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。
(4)留言管理:管理员点击“留言管理”按钮可以查看用户提交的留言消息,可以对用户提交的留言进行回复。
(3)美食公告:管理员可以对系统前台展示的美食公告进行增删改查,方便用户进行查看。
(4)资源管理:管理员可以对美食分享系统前台展示的美食资讯以及新闻列表进行管控。
(4)交流管理:管理员点击“交流管理”菜单可以对其下交流论坛和论坛的分类进行增删改查。
图2-2就是管理员角色的用例展示。
图2-2 美食分享系统管理员角色用例图
(三)数据需求分析
经过深入分析,我们发现数据库中最重要的信息包括:用户信息、美食公告、美食资讯、用户留言、美食中心、交流论坛、美食资讯。分析可以得到如下数据描述:
用户信息:我们的平台收集了个人资料,包括您的用户编号、姓名、性别、联系方式、电子邮箱和照片等。
管理员负责记录用户的登录信息,包括个人身份、密码和权限。
美食公告:储存美食公告资料的信息数据项。
美食资讯:存储美食资讯等详情数据项。
用户留言:存储用户留言信息等数据项。
美食中心:存储美食中心数据项。
交流论坛:存储交流论坛数据项。
美食资讯:存储美食资讯数据项。
三、 总体设计
(一)总体概念
本系统使用的角色主要有系统管理员、普通用户,本系统分为系统前台和系统后台,首先在系统前台,游客用户可以经过账号注册,管理员审核通过后,用账号密码登录系统前台,进行网站公告浏览、美食中心、交流论坛查看、进行在线留言,在前台用户可以通过标题和类别进行前台信息的搜索,普通用户可以登录个人中心进行个人资料管等功能。
后台主要由管理员使用,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用用户管理、美食分类管理、公告管理、收藏评论管理、美食中心管理、交流管理、留言管理等功能操作。系统的功能结构图如下图所示。
图4-1系统功能结构图
(二)系统E-R图设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,本美食分享系统中的主要的数据库E-R模型图如下图所示。
图4-2系统总体ER图
(三)功能模块
1、用户管理模块:
普通用户管理:包括用户注册、登录、个人信息修改等功能。
系统用户管理:管理员可以管理用户账户,包括修改用户密码、删除用户等操作。
2、登录模块:
用户登录:用户输入用户名和密码进行登录验证,系统根据用户身份进入相应页面。
3、注册模块:
用户注册:新用户填写手机号、用户名和设置登录密码,完成初步信息填写并提交注册。
4、美食资讯管理模块:
美食资讯添加:管理员添加美食资讯,包括填写名称、类型和内容等信息。
美食资讯查询:用户可以根据名称等信息对美食资讯进行查询。
美食资讯修改:管理员可以修改美食资讯的内容和其他相关信息。
美食资讯删除:管理员可以删除不需要的美食资讯。
5、美食中心管理模块:
美食中心添加:管理员添加美食中心,包括填写标题和内容等基本信息。
美食中心查询:用户可以根据名称等信息对美食中心进行查询。
美食中心修改:管理员可以修改美食中心的内容和其他相关信息。
美食中心删除:管理员可以删除不需要的美食中心。
6、留言信息管理模块:
用户留言:用户可以选择留言的内容并添加留言。
管理员管理留言信息:管理员可以查询留言信息,并有权对其进行管理,包括删除等操作。
四、 功能实现
(一)前端页面设计
为了实现用户登录功能,我们需要一个系统前台首页作为入口。用户可以通过在浏览器中输入系统地址来跳转至系统前台首页。在首页的左侧,我们可以放置一个登录窗口,该窗口包括以下几个元素:用户名、密码、权限和验证码。
对于用户名、密码和验证码,我们可以使用文本框来接收用户输入。而对于权限,我们可以使用下拉列表来提供不同的选项供用户选择。在验证码下方,我们可以添加两个按钮,分别是登录和重置按钮。
当用户点击登录按钮时,系统将进行登录验证。这意味着系统需要检查用户输入的用户名和密码是否与数据库中存储的信息匹配。如果匹配成功,则用户将被授权登录系统,并且可以访问其他功能和资源。如果匹配失败,则系统应该给出相应的错误提示,以便用户重新输入正确的信息。
为了确保用户输入的安全性,我们还可以考虑添加一些额外的安全措施,例如使用加密算法对用户密码进行加密存储,或者使用验证码来防止恶意登录行为。
在设计用户登录功能时,我们还应该考虑用户体验和界面设计的因素。例如,我们可以使用响应式设计来确保登录窗口在不同设备上都能正常显示和操作。此外,我们还可以添加一些辅助功能,如自动填充表单、记住密码等,以提高用户的便利性和满意度。美食分享的平台入口就是用户登录功能,在浏览器输系统地址跳转至系统前台首页,系统前台的登录窗口在首页左面,包括用户名、密码、权限、验证码,除了权限框使用下拉列表,其他使用文本框,验证码下方为登录和重置两个按钮,用户点击登录按钮,则进行登录验证。
登录流程图如下所示。
图4-1登录流程图
系统登录界面如下所示。
图4-2系统登录
当进入美食分享系统的时候,可以看到系统中的导航栏,搜索框,轮播图等信息,其主界面展示如下图4-2所示。
![](https://i-blog.csdnimg.cn/direct/e6fd5b335f944f5aad70b9a8bfb63060.png)
图4-3 前台首页界面图
用户点击“交流论坛”菜单显示所有的交流论坛信息,可以按照分类查看帖子信息,或者输入关键词进行局部搜索,点击可以进入帖子的详细展示界面,在此界面用户可以点赞、收藏、评论,也可以点击“发布内容”输入帖子信息进行发帖。界面如下图4-4所示。
![](https://i-blog.csdnimg.cn/direct/aeca37e19ed04eaea2d47d796ee3f8af.png)
图4-4交流论坛界面图
用户点击“美食公告”菜单显示管理员在后台发布的所有的美食公告信息,可以查看美食公告详情。界面如下图4-5所示。
![](https://i-blog.csdnimg.cn/direct/b8acec4320f04364beb02f24f666cb0d.png)
图4-5美食公告详情界面图
用户点击“美食资讯”菜单显示所有的美食资讯信息,可以按照条件进行美食资讯的筛选或者输入关键词进行局部搜索,点击可以进入美食资讯详细展示界面,在此界面用户可以收藏、点赞和评论。界面如图4-6所示。
![](https://i-blog.csdnimg.cn/direct/89a2c39c1e6e43e78647362d3f55d2e3.png)
图4-6 美食资讯详情界面图
用户点击“用户留言”菜单输入留言标题、内容、用户名等信息提交,同时可以查看管理员回复的留言内容。界面如下图4-7所示。
![](https://i-blog.csdnimg.cn/direct/e65916c995284ee780dc246c046b3343.png)
图4-7 用户留言界面图
用户可以查看美食中心,在查询到自己想要了解的美食中心的时候,可以进入查看详细的介绍,在美食中心详情这个界面,同时支持用户对喜欢的美食中心进行收藏、点赞、评论的功能。界面如下图4-8所示。
![](https://i-blog.csdnimg.cn/direct/dc0b1822d2234dafb8302769d7afba3d.png)
图4-8 美食中心界面图
(二)数据库设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本美食分享管理系统的主要的数据库表如下:
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_center_id | int | 10 | 0 | N | Y | 美食中心ID | |
2 | food_types | varchar | 64 | 0 | Y | N | 美食类型 | |
3 | food_name | varchar | 64 | 0 | Y | N | 美食名称 | |
4 | food_id | varchar | 64 | 0 | Y | N | 美食编号 | |
5 | food_poster | varchar | 255 | 0 | Y | N | 美食海报 | |
6 | food_videos | varchar | 255 | 0 | Y | N | 美食视频 | |
7 | video_language | varchar | 64 | 0 | Y | N | 视频语言 | |
8 | video_director | varchar | 64 | 0 | Y | N | 视频导演 | |
9 | video_lead | varchar | 64 | 0 | Y | N | 视频主演 | |
10 | production_area | varchar | 64 | 0 | Y | N | 制片地区 | |
11 | introduction_to_food | text | 65535 | 0 | Y | N | 美食简介 | |
12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | food_types_id | int | 10 | 0 | N | Y | 美食类型ID | |
2 | food_types | varchar | 64 | 0 | Y | N | 美食类型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | 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 | 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 | ordinary_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 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | 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 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
(三)框架
Spring框架是一个由Java公司发布的开放式框架,旨在通过其可扩展的特性来支持多种不同的编码方式。尽管Spring框架不会影响任何特定的编码方式,但其出色的性价比和可扩展性,已经成为EJB(EnterpriseJavaBeans)框架的重要组成部分,并且一直得到越来越多的人的青睐。Spring框架不仅可以有效地支撑开发,而且还可以充分利用其独有的控制反转功能,以及支撑多种持久性技术,从而将托管对象的生命周期变得更加容易,并且可以支撑声明性的事务处理,还可以支撑多种Web框架,从而有效地推动开发。Spring框架拥有强大的IOC功能,可以轻松地实现Java对象的调度与操作,从而更好地支持项目的运行。此外,Spring还支持将java对象的生命周期进行可视化,以实现更加灵活的调度与操作。Spring框架提供了一种新的、高效的容器设计工具,它能够根据XML文件和AOP注解的指引,从多个源中提取和组织相应的参数,从而实现多种功能。此外,它还提供了一种面向服务的框架,它能够根据用户的需求,自动调整参数,从而提高系统的效率和性能。Spring框架的AOP框架具有强大的功能,可以满足各种复杂的需求。尽管AspectJ框架的性能不及其他框架,但是Spring AOP的出色表现使其在各种应用场景中都具有出色的表现,例如:在事务处理、远程控制、网络安全、数据共享、文件共享、网络安全协议、网络安全协议。Java的事务处理框架提供了一种灵活的方式,可以将不同的内容、不同的时间段、不同的类型的数据进行处理,并且可以将这些处理结果存储到一起。此外,Spring还提供了一系列的事务模型。Spring的事务框架提供了一种灵活的方式,它允许用户根据需要调整事务的类型,例如XML、Java等,同时还支持快速的消息传输、缓冲等特性,从而有效地帮助开发者处理日益增长的数据需求。这款应用程序拥有强大的功能,能够兼容各种常见的数据处理框架,包括Java、iBATS/MyBATIs、Hibernate、Java)数据对象(JDO)、Apache OJB、Apache Cayne等,并能够将其与Spring的事务处理功能相结合,从而实现更加高效的数据处理。SpringMVC最初的目的是要替代StrutsWeb框架,因此,开发者决定将其与传统的web页面框架进行改造,使其能更好地支持用户的访问。这样,SpringMVC就能更好地支持用户的需求,从而提高web页面的性能。
五、 系统测试
(一)测试目的
系统测试的目的就是为了找错,从开发好的系统当中通过各种手段、方法进行找错,看看系统是不是存在乱码的现象,是不是用户功能混乱,通过各种纠错,保证系统能够正常的运行,在测试中我们通过采用的是黑盒测试和白盒测试两种测试方法,通过黑盒测试,我们可以了解系统各项功能是不是能够实现,界面是不是美观,操作是不是方便,通过白盒测试,我们可以了解到某一条的具体编程代码是不是运行路径正确,能不能达到预期,从错误中不断完善,想尽一切办法找到系统中存在的错误,然后找到出错的具体原因,然后对系统进行修改,达到我们所要实现的功能,进而提高了系统的各种性能(安全性、可靠性、稳定性等)。
系统测试不是程序开发完以后才开始的,他贯穿了开发的整个过程,在开发的过程中我们都会对实现的代码进行一点一点的测试,从而完成系统,再对系统进行整体测试,保证每个用户在使用的时候都能做到系统运行流程,满足信息增删改查等主要功能。
(二)系统测试用例
表5.1 登录模块功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
登录模块测试 | 登录成功的情况 | 管理员可以通过浏览器进入到美食分享管理系统后台的登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。 | 成功登录到管理员管理的界面 | 正确 |
登录模块测试 | 登录失败的情况 | 管理员可以通过浏览器进入到美食分享管理系统的后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。 | 系统提示“用户名和密码不匹配” | 正确 |
美食资讯信息添加功能测试:
表5.2 美食资讯信息添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
美食资讯添加模块测试 | 美食资讯添加成功的情况 | 在“资源管理”菜单中选择“美食资讯”点击 “新增”,输入美食资讯相关信息,输入正确的信息后,点击“提交”按钮。 | 提示添加成功 | 正确 |
美食资讯添加模块测试 | 美食资讯添加失败的情况 | 在“资源管理”菜单中选择“美食资讯”点击 “新增”,不输入资讯标题,其他信息正常填写后,点击“提交”按钮。 | 提示“添加失败,资讯标题不能为空” | 正确 |
查看用户留言信息功能模块测试:
表5.3 查看用户留言信息功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查看用户留言信息功能测试 | 用户留言信息显示成功的情况 | 用户在首页点击“用户留言”进入用户留言列表,任意一条用户留言,查看详情 | 用户留言显示成功 | 正确 |
发帖功能模块测试:
表5.4 发帖功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
发帖功能测试 | 发帖成功的情况 | 用户在“交流论坛”菜单中点击,点击“发布内容”根据提示输入帖子,点击“提交”。 | 发帖成功 | 正确 |
(三)系统测试结果
通过编写美食分享管理系统的测试用例,已经检测完毕登录、美食资讯添加、用户留言查看、发帖功能测试,通过这4大模块为美食分享管理系统的后期推广运营提供了强力的技术支撑。
结 论
通过对美食分享系统的研究,我们可以得出以下结论:美食分享系统是一种创新的社交平台,为用户提供了一个方便、快捷的方式来分享和探索美食文化。这种系统不仅可以帮助用户发现新的美食体验,还可以促进用户之间的交流和信息共享。
美食分享系统为用户提供了丰富多样的美食资源。用户可以通过系统浏览其他用户分享的菜谱、餐厅推荐和烹饪技巧,从而获得灵感和新的美食体验。这种资源的丰富性和多样性使得用户能够更好地满足个人口味和需求,拓宽自己的美食视野。美食分享系统促进了用户之间的交流和互动。用户可以在系统中评论、点赞和分享其他用户的美食内容,从而形成一个积极的社区氛围。这种交流和互动不仅增加了用户之间的联系,还可以促进知识和经验的传递,让用户从彼此的分享中受益。
尽管美食分享系统具有许多优点,但也存在一些挑战和问题。首先,信息真实性的验证是一个重要的问题。由于用户可以自由发布内容,存在着虚假信息和不准确评价的可能性。因此,系统需要采取有效的措施来验证和筛选用户分享的内容,以保证信息的可靠性和准确性。
综上所述,美食分享系统是一种有潜力的社交平台,可以促进美食文化的传播和交流。然而,在未来的研究中,我们需要进一步探索如何解决信息真实性和用户隐私保护等问题,以提高美食分享系统的可靠性和用户体验。
致 谢
在完成这篇关于美食分享系统的论文时,我要向许多人表示衷心的感谢。首先,我要感谢我的导师,他在整个研究过程中给予了我无私的指导和鼓励。他的专业知识和经验对我的研究起到了至关重要的推动作用。其次,我要感谢所有参与调查和访谈的被试者,他们的宝贵意见和反馈为我的研究提供了有力支持。没有他们的积极参与,我无法获得如此丰富的数据和信息。此外,我还要感谢那些餐厅和食品供应商,他们慷慨地提供了数据和信息,使得我的研究能够更加全面和准确。最后,我要感谢我的家人和朋友们,他们一直以来对我学术事业的支持和理解。他们的鼓励和支持是我坚持不懈、克服困难的动力源泉。再次向以上所有人致以最诚挚的谢意!你们的支持和帮助对我而言意义重大,我将永远铭记在心。
参考文献
[1]Liang C .School Vehicle Management System Based on JAVA Language[J].Academic Journal of Computing Information Science,2023,6(9):
[2]Allen C ,Mazanko A ,Abdehagh N , et al.A New ODE-Based Julia Implementation of the Anaerobic Digestion Model No. 1 Greatly Outperforms Existing DAE-Based Java and Python Implementations[J].Processes,2023,11(7):
[3]孟思明.基于SpringBoot框架选购系统的设计与实现[J].中国设备工程,2023,(11):94-95.
[4]谷建鹏.基于SpringBoot框架的即时通信系统开发[J].信息与电脑(理论版),2023,35(11):134-136.
[5]朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.DOI:10.16009/j.cnki.cn13-1295/tq.2023.05.062
[6]邓阳名,顾潇,梁爱媚.基于Java语言的数据库访问技术应用研究[J].中国新通信,2023,25(08):83-85.
[7]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.DOI:10.19695/j.cnki.cn12-1369.2023.03.46
[8]徐文倩,谢丹艳,黎柳等.基于JSP的美食分享网站的设计与实现[J].电脑知识与技术,2023,19(09):57-59.DOI:10.14004/j.cnki.ckt.2023.0421
[9]刘敏.一个在线Java语言教学系统的设计与实现[J].电脑知识与技术,2023,19(05):48-51+59.DOI:10.14004/j.cnki.ckt.2023.0263
[10]张一鸣.基于Java语言的基础编程平台设计[J].集成电路应用,2023,40(02):254-255.DOI:10.19339/j.issn.1674-2583.2023.02.116
[11]刘建吉.计算机软件开发中语言与分层技术运用研究[J].信息系统工程,2023,(01):134-136.
[12]张勇.用Java实现配置管理代替Web开发[J].电脑编程技巧与维护,2022,(12):55-58.DOI:10.16184/j.cnki.comprg.2022.12.033
[13]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013
[14]鲜易洲,杨蕊,吴蓉等.时食美食分享系统的设计与分析[J].电脑知识与技术,2021,17(09):85-87.DOI:10.14004/j.cnki.ckt.2021.0845
[15]顾捷.舟山紫菜“海味”美食分享[J].农村百事通,2020,(01):42-43.DOI:10.19433/j.cnki.1006-9119.2020.01.019