摘  要

本论文探讨了一种基于Spring Boot框架的外卖点餐小程序的设计与开发。该系统旨在为用户提供便捷的在线点餐服务,提升外卖行业的运营效率。

论文详细介绍了系统的整体架构,包括用户端、商家端和管理员端的功能模块。用户可以通过小程序进行注册、浏览菜品信息、下单、支付以及管理个人信息和订单。商家端则提供了菜品管理、订单处理和营销活动管理等功能,帮助商家高效运营。管理员端负责系统用户管理、菜品分类管理、公告发布和权限控制,确保系统的安全和稳定运行。

在技术实现方面,系统采用了Spring Boot作为后端框架,结合MySQL数据库进行数据存储,使用微信小程序作为前端展示平台。通过合理的接口设计,确保了前后端的数据交互流畅,并提升了用户体验。

论文最后总结了系统的应用价值和未来发展方向,指出该小程序不仅提高了用户的点餐体验,也为商家提供了更好的管理工具,具有良好的市场前景。

关键词:微信小程序;外卖点餐;springboot;功能权限;系统设计

Abstract

This paper explores the design and development of a food delivery ordering mini program based on the Spring Boot framework. The system aims to provide users with convenient online ordering services and improve the operational efficiency of the food delivery industry.

The paper provides a detailed introduction to the overall architecture of the system, including the functional modules of the user side, merchant side, and administrator side. Users can register, browse dish information, place orders, make payments, and manage personal information and orders through the mini program. The merchant end provides functions such as dish management, order processing, and marketing activity management to help merchants operate efficiently. The administrator is responsible for system user management, dish classification management, announcement publishing, and permission control to ensure the security and stable operation of the system.

In terms of technical implementation, the system adopts Spring Boot as the backend framework, combined with MySQL database for data storage, and uses WeChat mini program as the frontend display platform. Through reasonable interface design, smooth data interaction between the front-end and back-end is ensured, and the user experience is improved.

At the end of the paper, the application value and future development direction of the system were summarized, pointing out that the mini program not only improves users' ordering experience, but also provides better management tools for merchants, with good market prospects.

Keywords: WeChat Mini Program; Takeout ordering; springboot; Functional permissions; system design


目录

摘  要

第一章 绪 论

1.1选题背景和意义

1.2国内外研究现状

1.3研究内容

第二章 开发工具及关键技术介绍

2.1微信开发者工具

2.2小程序框架以及目录结构介绍

2.3 JAVA技术

2.4 Mysql数据库

2.5 Springboot框架

第三章 系统分析

3.1可行性分析

3.1.1经济可行性分析

3.1.2操作可行性分析

3.1.3技术可行性分析

3.2功能需求分析

3.3性能需求分析

3.4系统流程分析

3.4.1用户注册流程图

3.4.2用户登录流程图

3.4.3业务流程图

第四章 系统设计与实现

4.1系统总体设计思路

4.2系统结构设计

4.3系统核心代码设计

4.3.1用户注册

4.3.2用户登录

4.3.3修改密码

4.3.4修改数据

4.3.5删除数据

4.3.6获取列表

4.3.7图片上传

4.4数据库设计

4.4.1数据库设计原则

4.4.2数据库实体

4.4.3数据库表设计

第五章 系统实现

5.1 登录模块的实现

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.4 管理员功能实现

5.4.1首页界面

5.4.2轮播图管理界面

5.4.3系统用户界面

5.4.4菜品信息管理界面

5.4.5网站公告管理界面

5.4.6资源管理界面

5.4.7留言反馈管理界面

5.4.7商城管理界面

第六章  系统的测试

6.1测试目的

6.2功能测试

6.3性能测试

6.4测试结果

结  论

参考文献

致  谢

第一章 绪 论

1.1选题背景和意义

在现代社会中,随着生活节奏的加快,外卖服务逐渐成为人们日常饮食的重要组成部分。尤其是在城市中,越来越多的人选择通过外卖平台来满足他们的用餐需求。这一趋势促使了外卖行业的迅速发展,然而,市场竞争也愈加激烈,商家需要不断提升服务质量和运营效率,以满足消费者的多样化需求。

在此背景下,基于Spring Boot框架的微信外卖点餐小程序应运而生。该小程序旨在通过简化点餐流程,提高用户体验,帮助商家更高效地管理订单和菜品信息。微信作为一个广泛使用的社交平台,拥有庞大的用户基础,利用其小程序功能能够便捷地将外卖服务与用户日常生活相结合,降低了用户使用的门槛。

本研究的意义在于,通过设计和实现微信外卖点餐小程序,不仅能够为用户提供更加便利的点餐体验,还能为商家提供有效的管理工具,提升其市场竞争力。此外,系统的设计与实现过程也为后续类似项目的开发提供了参考,推动了外卖行业的信息化进程。通过整合现代技术与用户需求,该小程序有望在提升服务质量的同时,促进外卖行业的可持续发展。

1.2国内外研究现状

在国内外,外卖点餐系统的研究和应用已经取得了一定的进展。随着互联网技术的快速发展,外卖行业逐渐成为餐饮市场的重要组成部分。许多学者和企业开始关注外卖点餐系统的设计与实现,以满足日益增长的市场需求。

在国内,许多外卖平台如美团、饿了么等已经建立了完善的在线点餐系统。这些平台通过移动应用和小程序的形式,为用户提供了便捷的点餐体验。相关研究主要集中在用户体验优化、订单管理、物流配送等方面。一些研究者探讨了如何通过数据分析来提升用户满意度和商家的运营效率,推动了外卖行业的智能化发展。

在国外,外卖服务同样得到了广泛关注,尤其是在欧美国家。许多外卖平台通过创新的技术手段,提高了服务的便捷性和安全性。研究者们关注的领域包括在线支付安全、用户行为分析和个性化推荐等。国外的一些研究还涉及外卖服务对城市交通和环境的影响,探讨如何在保证服务质量的同时,降低外卖配送对城市的负担。

总体来看,国内外在外卖点餐系统的研究上已经形成了一定的基础,涵盖了技术实现、用户体验、市场分析等多个方面。然而,随着市场需求的不断变化,仍然存在许多待解决的问题和改进空间。基于Spring Boot框架的微信外卖点餐小程序的设计与实现,将为这一领域的研究提供新的视角和实践案例,推动外卖行业的进一步发展。

1.3研究内容

开发和实施微信外卖点餐小程序,需要完成以下任务:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)在系统ACK完成之后,我们将根据系统开发的要求,选择JAVA技术来构建微信外卖点餐小程序,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,我们还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。

(3)在微信外卖点餐小程序中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、商家和用户角色,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,用户可以随时根据自身的需求查看菜品信息,而系统的工作人员则可以根据自身的职责,处理和操作在线信息。管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。

(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,我们会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。

第二章开发工具及关键技术介绍

2.1微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.2小程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

2.3 JAVA技术

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。

JAVA语言功能:

面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。

Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。

C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。

2.4 Mysql数据库

数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。

在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。

2.5 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.1可行性分析

通过综合考虑经济、操作、技术等因素,可以对微信外卖点餐小程序的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。

 3.1.1经济可行性分析

考虑到Springboot、小程序及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升微信外卖点餐小程序的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。

 3.1.2操作可行性分析

系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。

 3.1.3技术可行性分析

从技术方面来说,微信外卖点餐小程序的设计与实现也是可行的。Spring Boot是一种流行的Java框架,提供了强大的开发支持。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL是一种流行的关系型数据库管理系统,提供了强大的数据存储和管理支持。通过使用这些技术,微信外卖点餐小程序可以实现高效、安全、可靠的管理功能。

3.2功能需求分析

微信外卖点餐小程序的设计与实现是基于Spring Boot、小程序、JAVA语言和MySQL数据库的综合订购系统。系统分为三个角色:注册用户、商家用户和管理员,每个角色都有不同的功能权限,确保系统的安全性和可靠性。下面是系统的功能需求分析:

1.注册用户功能分析:

登录注册:用户可以通过微信快速注册,简化了注册流程,提升用户体验。注册后,用户可以管理个人信息和设置。

首页:首页展示推荐菜品、热门活动和促销信息,吸引用户注意。提供搜索框,方便用户快速查找所需菜品。

网站公告:用户可以查看最新的公告和活动信息,保持对平台动态的了解。

菜品信息:展示详细的菜品信息,包括图片、价格、成分、口味等,帮助用户做出选择。提供菜品分类,方便用户浏览。

外卖商城:用户可以在商城中浏览和购买各种菜品,支持添加到购物车功能。提供多种支付方式,确保交易的便利性。

购物车:用户可以查看和管理购物车中的菜品,修改数量或删除菜品。提供结算功能,快速完成订单。

菜品资讯:提供有关菜品的最新资讯和食谱,增加用户粘性。用户可以分享资讯,促进互动。

我的:

基本信息:用户可以查看和编辑个人信息,如昵称、头像等。

收货地址:管理收货地址,支持添加、编辑和删除功能。

收藏:用户可以收藏喜欢的菜品,方便日后快速访问。

订单:查看历史订单,支持订单查询和追踪。

购物车:再次访问购物车,方便用户随时查看选择。

我的优惠券:管理可用的优惠券,查看使用情况。

订单配送:实时查看订单配送状态,提升用户体验。

2.商家用户功能分析:

后台首页:商家可以查看店铺的整体运营情况,包括销售额、订单量等关键指标。

商城管理:

外卖商城:管理店铺的菜品信息,包括添加、删除、修改、重置等。

分类列表:对菜品进行分类管理,方便用户浏览和选择。

订单列表:查看和管理所有订单,支持订单状态更新。

订单配送:管理订单配送过程,确保及时送达。

优惠券:创建和管理优惠券活动,吸引用户消费。

3.管理员功能分析:

后台首页:管理员可以查看系统的整体运行状态,包括用户数量、订单量和销售额等统计数据。

系统用户:管理员可以管理系统中的用户信息,包括用户注册、权限设置等。

菜品分类管理:管理员负责菜品分类的创建和维护,确保分类清晰、合理。

菜品信息管理:管理员可以添加、编辑和删除菜品信息,确保菜品数据库的准确性。

轮播图管理:管理员可以更新首页的轮播图,展示最新活动或推荐菜品。

网站公告管理:发布和管理网站公告,保持用户对平台动态的了解。

资源管理:

菜品资讯:管理与菜品相关的资讯内容,确保信息的及时更新。

资讯分类:对资讯进行分类管理,方便用户查找。

商城管理:包括外卖商城、分类列表、订单列表、订单配送和优惠券的管理,与商家功能相辅相成。

权限管理:管理员可以设置不同用户角色的权限,确保系统安全性和数据保护。

通过上述功能分析,可以看出该系统在用户、商家和管理员三个层面上都进行了细致的功能设计,满足了各类用户的需求。用户能够方便地进行点餐和管理个人信息,商家能够有效管理订单和菜品,管理员则负责系统的整体管理和维护。这种结构化的功能设计不仅提升了用户体验,也为系统的可维护性和扩展性提供了良好的基础。

根据使用该系统的用户角色可以划分为注册用户、商家用户和管理员,具体如下所示。

微信外卖点餐小程序注册用户角色用例图如下所示。

图3-1 注册用户角色用例图

微信外卖点餐小程序商家用户角色用例图如下所示。

图3-2 商家用户角色用例图

微信外卖点餐小程序管理员角色用例图如下所示。

图3-3 管理员角色用例图

3.3性能需求分析

用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览菜品信息、下单等操作应该迅速响应。

系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。

数据安全:用户信息、交易记录等敏感数据需要加密存储,确保数据安全性。

系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。

日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。

基于以上性能需求将确保微信外卖点餐小程序能够稳定、高效地运行,能够很好地满足用户和管理员的需求。

3.4系统流程分析

3.4.1用户注册流程图

注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图

3.4.2用户登录流程图

登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5 用户登录流程图

3.4.3业务流程图

业务流程图既反映了内部业务间的相互联系,又反映了商品交易和信息流动情况。微信外卖点餐小程序须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对菜品交易信息自身特点和面临的现实条件,对系统进行业务流程图设计。系统通过流程的顺畅和高效,实现了外卖交易需求的满足和系统管理的便捷,提升了系统的运行效率和用户体验。微信外卖点餐小程序的业务流程如下图所示。

用户外卖下单流程如下图所示。

图3-6 用户购买菜品业务流程图

第四章 系统设计与实现

4.1系统总体设计思路

微信外卖点餐小程序采用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-2所示。

图4-2整体功能结构设计图

4.3系统核心代码设计

微信外卖点餐小程序的核心代码设计如下:

4.3.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-3所示。

图4-3注册核心代码图

4.3.2用户登录

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

图4-4用户登录核心代码图

4.3.3修改密码

修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图4-5所示。

图4-5修改密码核心代码图

4.3.4修改数据

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

图4-6修改数据核心代码图

4.3.5删除数据

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

图4-7删除数据核心代码图

4.3.6获取列表

通过请求的参数获取列表数据,代码如图4-8所示。

图4-8获取列表核心代码图

4.3.7图片上传

通过请求的参数获取列表数据,代码如图4-9所示。

图4-9图片上传核心代码图

4.4数据库设计

数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,我们需要明确每个元素的特征,并将它们组合在一起。

4.4.1概念设计

E-R图一般是由实体、实体的属性与联系三个要素组成的。在规划系统中所使用的数据库实体对象及实体E-R图,则需要通过对系统的需求分析、业务流程设计和系统功能结构来确定的。

总体ER图如下图所示:

图4-10数据库E-R图

4.4.3逻辑设计

将实体属性模型转换为关系数据库应该遵循以下几个原则:

1.一个实体转换后要对应一个关系。

2.所有的主键必须要定义为非空(not null)。

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

用户编号:

表address (收货地址:)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

address_id

int

10

0

N

Y

收货地址:

2

name

varchar

32

0

Y

N

姓名:

3

phone

varchar

13

0

Y

N

手机:

4

postcode

varchar

8

0

Y

N

邮编:

5

address

varchar

255

0

N

N

地址:

6

user_id

mediumint

8

0

N

N

用户ID:[0,8388607]用户获取其他与用户相关的数据

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

default

bit

1

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

更新时间:

表cart (购物车)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

cart_id

int

10

0

N

Y

购物车ID:

2

title

varchar

64

0

Y

N

标题:

3

img

varchar

255

0

N

N

0

图片:

4

user_id

int

10

0

N

N

0

用户ID:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

state

int

10

0

N

N

0

状态:使用中,已失效

8

price

double

9

2

N

N

0.00

单价:

9

price_ago

double

9

2

N

N

0.00

原价:

10

price_count

double

11

2

N

N

0.00

总价:

11

num

int

10

0

N

N

1

数量:

12

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

13

type

varchar

64

0

N

N

未分类

商品分类:

14

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

表classification_of_dishes (菜品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

classification_of_dishes_id

int

10

0

N

Y

菜品分类ID

2

type_of_dish

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

更新时间

表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:

表coupon (优惠券)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

coupon_id

int

10

0

N

Y

优惠券id

2

coupon_user_id

int

10

0

Y

N

优惠券用户id

3

coupon_user_auth

varchar

255

0

Y

N

优惠券用户

4

coupon_name

varchar

255

0

Y

N

优惠券名称

5

coupon_price

int

10

0

Y

N

优惠券价格

6

coupon_price1

int

10

0

Y

N

优惠券券后价格

7

coupon_time

varchar

255

0

Y

N

优惠券时间

8

coupon_type

varchar

255

0

Y

N

优惠券类型

9

create_time

timestamp

19

0

Y

N

CURRENT_TIMESTAMP

10

update_time

timestamp

19

0

Y

N

CURRENT_TIMESTAMP

表coupon_user (用户优惠券)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

id

int

10

0

N

Y

id

2

user_id

int

10

0

Y

N

用户id

3

coupon_id

int

10

0

Y

N

优惠券id

4

is_use

int

10

0

Y

N

是否使用

5

coupon_user_id

int

10

0

Y

N

表food_information (菜品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

food_information_id

int

10

0

N

Y

菜品信息ID

2

name_of_dish

varchar

64

0

Y

N

菜品名称

3

type_of_dish

varchar

64

0

Y

N

菜品类型

4

taste_of_dishes

varchar

64

0

Y

N

菜品口味

5

food_specifications

varchar

64

0

Y

N

菜品规格

6

ingredients_of_dishes

varchar

64

0

Y

N

菜品成分

7

food_pictures

varchar

255

0

Y

N

菜品图片

8

cuisine_preparation

text

65535

0

Y

N

菜品做法

9

details_of_dishes

text

65535

0

Y

N

菜品详情

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表goods (商品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_id

mediumint

8

0

N

Y

产品id:[0,8388607]

2

title

varchar

125

0

Y

N

标题:[0,125]用于产品和html的<title>标签中

3

img

text

65535

0

Y

N

封面图:用于显示于产品列表页

4

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

5

price_ago

double

8

2

N

N

0.00

原价:[1]

6

price

double

8

2

N

N

0.00

卖价:[1]

7

sales

int

10

0

N

N

0

销量:[0,1000000000]

8

inventory

int

10

0

N

N

0

商品库存

9

type

varchar

64

0

N

N

商品分类:

10

hits

int

10

0

N

N

0

点击量:[0,1000000000]访问这篇产品的人次

11

content

longtext

2147483647

0

Y

N

正文:产品的主体内容

12

img_1

text

65535

0

Y

N

主图1:

13

img_2

text

65535

0

Y

N

主图2:

14

img_3

text

65535

0

Y

N

主图3:

15

img_4

text

65535

0

Y

N

主图4:

16

img_5

text

65535

0

Y

N

主图5:

17

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

19

customize_field

text

65535

0

Y

N

自定义字段

20

source_table

varchar

255

0

Y

N

来源表:

21

source_field

varchar

255

0

Y

N

来源字段:

22

source_id

int

10

0

N

N

0

来源ID:

23

user_id

int

10

0

Y

N

0

添加人

表goods_type (商品类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

int

10

0

N

Y

商品分类ID:

2

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

3

name

varchar

255

0

Y

N

商品名称:

4

desc

varchar

255

0

Y

N

描述:

5

icon

varchar

255

0

Y

N

图标:

6

source_table

varchar

255

0

Y

N

来源表:

7

source_field

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

更新时间:

表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:

表logistics_delivery (物流配送)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_delivery_id

int

10

0

N

Y

物流配送ID

2

order_number

varchar

64

0

Y

N

订单号

3

product_name

varchar

64

0

Y

N

商品名称

4

purchase_quantity

varchar

64

0

Y

N

购买数量

5

total_transaction_amount

double

11

2

Y

N

0.00

交易总额

6

the_date_of_issuance

date

10

0

Y

N

发货日期

7

delivery_number

varchar

30

0

Y

N

配送订单

8

ordinary_users

int

10

0

Y

N

0

普通用户

9

shipping_address

varchar

64

0

Y

N

收货地址

10

delivery_status

varchar

64

0

Y

N

配送状态

11

signing_status

varchar

64

0

Y

N

签收状态

12

recommend

int

10

0

N

N

0

智能推荐

13

contact_name

varchar

255

0

Y

N

联系人名字

14

merchant_id

int

10

0

Y

N

商家id

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

表order (订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_id

int

10

0

N

Y

订单ID:

2

order_number

varchar

64

0

Y

N

订单号:

3

goods_id

mediumint

8

0

N

N

商品id:[0,8388607]

4

title

varchar

255

0

Y

N

商品标题:

5

img

varchar

255

0

Y

N

商品图片:

6

price

double

10

2

N

N

0.00

价格:

7

price_ago

double

10

2

N

N

0.00

原价:

8

num

int

10

0

N

N

1

数量:

9

price_count

double

8

2

N

N

0.00

总价:

10

norms

varchar

255

0

Y

N

规格:

11

type

varchar

64

0

N

N

未分类

商品分类:

12

contact_name

varchar

32

0

Y

N

联系人姓名:

13

contact_email

varchar

125

0

Y

N

联系人邮箱:

14

contact_phone

varchar

11

0

Y

N

联系人手机:

15

contact_address

varchar

255

0

Y

N

收件地址:

16

postal_code

varchar

9

0

Y

N

邮政编码:

17

user_id

int

10

0

N

N

0

买家ID:

18

merchant_id

mediumint

8

0

N

N

0

商家ID:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

21

description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

22

state

varchar

16

0

N

N

待付款

订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成

23

remark

text

65535

0

Y

N

订单备注

24

delivery_state

varchar

16

0

Y

N

未配送

发货状态:未配送,已配送

25

vip_discount

double

11

2

Y

N

0.00

折扣

表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

contact_information

varchar

16

0

Y

N

联系方式

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

user_id

int

10

0

N

N

0

用户ID

6

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

7

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:

表seller_customers (卖家用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

seller_customers_id

int

10

0

N

Y

卖家用户ID

2

seller_name

varchar

64

0

Y

N

卖家姓名

3

sellers_phone_number

varchar

16

0

Y

N

卖家电话

4

store_name

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

更新时间

表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

email

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

更新时间:

表waimai_mall (外卖商城)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

waimai_mall_id

int

10

0

N

Y

外卖商城ID

2

seller_customers

int

10

0

Y

N

0

卖家用户

3

store_name

varchar

64

0

Y

N

店铺名称

4

sellers_phone_number

varchar

64

0

Y

N

卖家电话

5

name_of_dish

varchar

64

0

Y

N

菜品名称

6

food_specifications

varchar

64

0

Y

N

菜品规格

7

cart_title

varchar

125

0

Y

N

标题:[0,125]用于产品html的标签中

8

cart_img

text

65535

0

Y

N

封面图:用于显示于产品列表页

9

cart_description

varchar

255

0

Y

N

描述:[0,255]用于产品规格描述

10

cart_price_ago

double

8

2

N

N

0.00

原价:[1]

11

cart_price

double

8

2

N

N

0.00

卖价:[1]

12

cart_inventory

int

10

0

N

N

0

商品库存

13

cart_type

varchar

64

0

N

N

未分类

商品分类:

14

cart_content

longtext

2147483647

0

Y

N

正文:产品的主体内容

15

cart_img_1

text

65535

0

Y

N

主图1:

16

cart_img_2

text

65535

0

Y

N

主图2:

17

cart_img_3

text

65535

0

Y

N

主图3:

18

cart_img_4

text

65535

0

Y

N

主图4:

19

cart_img_5

text

65535

0

Y

N

主图5:

20

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

21

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间


第五章 系统实现

5.1 登录模块的实现

在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配食堂

用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。

用户登录流程图如下所示。

图5-1 用户登录流程

想要进入系统用户输入准确的姓名和密码,系统才会自动启动,并且会对用户的身份进行检查,若发现身份信息不符合要求,则会自动返回主界面,以便用户可以安全的登录使用。

系统登录界面如下图所示。

图5-2 系统登录界面

5.2 注册用户功能实现

5.2.1 用户首页模块

通过输入http://localhost:8080/index.jsp 地址,用户可以轻松访问微信外卖点餐小程序的首页,该首页由top、left、down和center四个部分组成,用户可以通过@ include来进一步了解该系统的内容。

首页载入流程图如下所示。

图5-3 首页载入流程

首页载入流程:系统首先连接数据库,调整显示界面参数,从中提取出数据表,使用html格式创建显示模板,根据添加时间顺序排列数据,并以模板指定的位置显示出来,然后重新调整显示界面,最后断开数据库的连接。

首页如下图所示。

图5-4 首页界面

5.2.2 网站公告模块

用户点击首页“网站公告”按钮,可以查看最新的公告和活动信息,界面如下图所示。

图5-5 网站公告详情界面

5.2.3 菜品资讯模块

用户点击首页“菜品资讯”按钮,可以浏览有关菜品的最新资讯和食谱,可以进行点赞、收藏、评论、分享资讯,促进互动。界面如下图所示。

图5-6 菜品资讯列表界面

5.2.4 外卖商城模块

用户点击首页“外卖商城”按钮,会进入产品展示列表,支持通过产品名称进行搜索和筛选菜品分类,用户点击可查看菜品详情,包括名称、价格、库存、图片、详细描述等,用户可以进行加入购物车、立即购买、评论、收藏、咨询客服等操作,点击“加入购物车”,用户可以将选中的菜品添加到购物车,方便统一结算,并可在购物车中修改商品数量或删除商品。点击“立即购买”可以跳转到订单页面,用户可以选择支付。产品展示列表界面如下图5-7所示。菜品详情界面如下图5-8所示。购物车页面如下图5-9所示。订单页面如下图5-10所示。

图5-7产品展示列表界面

图5-8外卖商城详情界面

图5-9购物车界面

图5-10订单详情界面

5.2.5我的模块

用户点击导航栏“我的”,可以进入个人信息页面,用户可以管理自己的基本信息、收货地址、收藏、订单、购物车、优惠券、订单配送。收货地址管理界面如下图5-11所示。订单配送列表如下图5-12所示。

图5-11收货地址管理界面

图5-12订单配送列表界面

5.3 商家用户功能实现

5.3.1 外卖商城模块

商家用户点击导航栏“商家管理”,点击“外卖商城”,可以管理店铺的菜品信息,包括增删改查等操作,还可以查看和回复用户评论。外卖商城列表界面如下图5-13所示。菜品信息增加界面如下图5-14所示。

图5-13外卖商城列表界面

图5-14菜品信息增加界面

5.3.2 优惠券模块

商家用户点击导航栏“商城管理”菜单,点击“优惠券”,可以创建和管理优惠券活动,吸引用户消费,还可以进行查询、重置、删除等操作。界面如下图5-15所示。

图5-15优惠券界面

5.3.3 订单列表模块

商家用户点击导航栏“商城管理”菜单,点击“订单列表”可以查看和管理所有订单,支持通过订单号、商品名称等进行查询。订单列表界面如下图5-16所示。

图5-16公告信息详情界面

5.4 管理功能实现

5.4.1首页界面

管理员登录系统后,将会进入系统首页,可以查看商品销售金额统计、商品销售数量统计,以便于了解销售情况。界面如下图5-17所示。

图5-17系统首页界面图

5.4.2轮播图管理界面

管理员点击“轮播图管理”菜单,可以对前台展示的轮播图进行设置,界面如下图5-18所示。

图5-18轮播图管理界面图

5.4.3系统用户界面

管理员点击“系统用户”菜单,管理员可以管理系统中的用户信息,包括注册用户和商家的信息,支持用户的增删改查操作。界面如下图所示。

图5-19用户管理界面图

5.4.4菜品信息管理界面

管理员点击“菜品信息管理”这个菜单,将会显示菜品信息列表和菜品信息添加两个子菜单,点击“菜品信息列表”,管理员可以查看所有菜品信息的列表和用户评论。点击“菜品信息添加”,管理员可以添加新的菜品信息。菜品信息列表界面如下图5-20所示。菜品信息添加界面如下图5-21所示。

图5-20菜品信息列表界面图

5.4.5网站公告管理界面

管理员点击“网站公告管理”这个菜单,可以对系统中的公告信息进行管理,包括公告信息的增删改查等操作。网站公告管理界面如下图所示。

图5-21网站公告管理界面图

5.4.6资源管理界面

管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于菜品资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,界面如下图所示。

图5-22资源管理界面图

5.4.7权限管理界面

管理员点击“权限管理”这个菜单,可以设置不同用户角色的权限,确保系统安全性和数据保护。权限管理界面如下图所示。

图5-23权限管理界面图

5.4.7商城管理界面

管理员点击“商城管理”这个菜单,将会显示外卖商城、分类列表、订单列表、订单配送、优惠券五个子菜单,点击“外卖商城”,可以管理商城内的外卖商城,包括添加、编辑和删除菜品信息,还可查看和回复用户评论信息。点击“分类列表”可以对菜品进行分类管理,便于用户查找和浏览。点击“订单列表”,管理员可以查看订单信息。点击“订单配送”,可以管理所有用户的配送订单,跟踪订单的配送状态。外卖商城界面如下图5-24所示。订单列表界面如下图5-25所示。

图5-24外卖商城界面图

图5-25订单列表界面图


六章  系统的测试

6.1测试目的

在对该系统进行完详细设计和编码之后,就要对微信外卖点餐小程序的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。

6.2功能测试

本系统的主要功能就是注册用户登录后,可搜索和浏览外卖商城,并可下单,管理员登录系统后台后可对外卖商城进行管理,包括增改删查操作。测试设计如下所示:

(1)登录模块功能测试

用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:

表6-1 用户登录功功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证有效登录

1. 输入正确的用户名和密码 <br> 2. 点击登录按钮

显示登录成功,跳转至用户首页

登录成功,跳转至用户首页

通过

TC002

验证空用户名登录

1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮

显示用户名不能为空提示信息

显示用户名不能为空提示信息

通过

TC003

验证空密码登录

1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮

显示密码不能为空提示信息

显示密码不能为空提示信息

通过

TC004

验证错误用户名登录

1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

TC005

验证错误密码登录

1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

(2)外卖商城模块功能测试

外卖商城模块测试包括外卖商城展示功能测试、外卖商城添加功能测试、外卖商城搜索功能测试、外卖商城下单功能测试。外卖商城模块测试用例如表6.2-6.5所示。

外卖商城展示功能测试用例设计如下表所示:

表6-2 外卖商城展示功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证正常展示外卖商城

1. 进入外卖商城展示页面 <br> 2. 浏览展示的外卖商城内容

能够正常显示外卖商城内容

外卖商城内容正常显示

通过

TC002

验证外卖商城链接跳转

1. 进入外卖商城展示页面 <br> 2. 点击外卖商城链接

能够跳转至相应外卖商城详情页面

成功跳转至外卖商城详情页面

通过

TC003

验证搜索功能

1. 进入外卖商城展示页面 <br> 2. 使用搜索功能搜索外卖商城

显示符合搜索条件的外卖商城列表

显示符合搜索条件的外卖商城列表

通过

TC004

验证菜品分类展示

1. 进入外卖商城展示页面 <br> 2. 选择菜品分类

显示该分类下的外卖商城列表

成功显示该分类下的外卖商城列表

通过

TC005

验证外卖商城的评论功能

1. 进入菜品详情展示页面 <br> 2. 查看菜品并发表评论

评论成功显示在菜品页面

评论成功显示在菜品页面

通过

TC006

验证菜品下单页面跳转

1. 进入外卖商城详情展示页面 <br> 2. 点击菜品下单按钮

能够跳转至相应菜品下单页面

成功跳转至菜品下单页面

通过

外卖商城添加功能测试用例设计如下表所示:

表6-3 外卖商城添加功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证添加外卖商城

1. 进入外卖商城添加界面 <br> 2. 输入外卖商城 <br> 3. 点击添加按钮

外卖商城成功添加到系统页面中

外卖商城成功添加到系统页面中

通过

TC002

验证外卖商城菜品分类选择

1. 进入外卖商城添加界面 <br> 2. 选择菜品分类 <br> 3. 输入外卖商城 <br> 4. 提交外卖商城

根据选择的外卖商城菜品分类成功添加外卖商城

根据选择的外卖商城类型成功添加外卖商城

通过

TC003

验证外卖商城内容输入

1. 进入外卖商城添加界面 <br> 2. 输入正确外卖商城内容和答案 <br> 3. 点击添加按钮

外卖商城内容成功录入系统

外卖商城内容成功录入系统

通过

TC004

验证外卖商城图片上传

1. 进入外卖商城添加界面 <br> 2. 上传外卖商城相关图片 <br> 3. 点击添加按钮

图片成功上传并与外卖商城关联

图片成功上传并与外卖商城关联

通过

外卖商城搜索功能测试用例设计如下表所示:

表6-4 外卖商城搜索功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证外卖商城输入物品名称搜索

1. 进入外卖商城搜索界面 <br> 2. 输入菜品名称 <br> 3. 确认并搜索

根据选择的菜品名称关键词显示相关菜品

根据选择的菜品品名称关键词成功显示相关菜品

通过

TC002

验证外卖商城输入菜品分类搜索

1. 进入外卖商城搜索界面 <br> 2. 输入菜品分类 <br> 3. 确认并搜索

根据选择的菜品分类关键词显示相关菜品

根据选择的菜品分类关键词成功显示相关菜品

通过

TC003

验证外卖商城选择审核状态搜索

1. 进入外卖商城搜索界面 <br> 2. 输入审核状态 <br> 3. 确认并搜索

根据选择的审核状态关键词显示相关菜品

根据选择的审核状态关键词成功显示相关菜品

通过

外卖商城下单功能测试用例设计如下表所示:

表6-5 外卖商城下单功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证未输入订单数量,点击提交

1. 进入外卖商城下单界面 <br> 2.未输入订单数量,点击提交 <br> 3. 点击提交按钮

提示请输入订单数量

提示请输入订单数量

通过

TC002

验证未输入收获地址,点击提交

1. 进入外卖商城下单界面 <br> 2.未输入收获地址,点击提交 <br> 3. 点击提交按钮

提示请输入收获地址

提示请输入收获地址

通过

TC003

验证未输入订单备注,点击提交

1. 进入外卖商城下单界面 <br> 2.未输入订单备注,点击提交 <br> 3. 点击提交按钮

提示请输入订单备注

提示请输入订单备注

通过

6.3性能测试

  1. 兼容性测试

表6-6 兼容性测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

兼容性_01

设备兼容性

测试系统在不同设备上的表现

在多种设备上访问系统并记录表现

系统在各种设备上都能正常加载和显示页面

兼容性_02

浏览器兼容性

测试系统在不同浏览器上的表现

在多种浏览器中访问系统并记录表现

系统在各种主流浏览器上都能正常加载和显示页面

兼容性_03

分辨率兼容性

测试系统在不同分辨率下的显示效果

在不同分辨率的设备上访问系统并记录表现

系统在各种分辨率下都能适应并正常显示内容

兼容性_04

操作系统兼容性

测试系统在不同操作系统上的运行情况

在不同操作系统上访问系统并记录表现

系统能够在常用操作系统上正常运行和显示

  1. 性能测试

表6-7 性能测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

性能_01

负载测试

测试系统在正常负载下的性能

逐步增加用户数来模拟不同的负载情况

系统能够稳定处理并响应不同数量的用户请求

性能_02

压力测试

测试系统在极端负载下的性能

以超过系统承受极限的用户数来测试系统

系统能够在高负载情况下仍然保持正常运行

性能_03

并发测试

测试系统能同时处理多少并发用户请求

同时发送多个并发用户请求来测试系统性能

系统能够有效地处理多个并发请求

性能_04

数据量测试

测试系统在大数据量下的性能

向系统添加大量数据并测试系统响应时间

系统能够在大数据量情况下保持较快的响应时间

6.4测试结果

全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。

结  论

本论文围绕微信外卖点餐小程序的设计与实现进行了深入研究,通过对系统的设计、开发和测试,验证了基于Spring Boot框架的小程序在外卖点餐领域的有效性和实用性。该小程序不仅满足了用户在点餐过程中的基本需求,还通过优化的用户体验提升了整体满意度。

研究表明,系统的架构设计合理,功能模块清晰,用户能够方便地进行注册、浏览菜品、下单和支付等操作。商家端的管理功能使得商家能够高效地处理订单和管理菜品,增强了运营效率。管理员端的管理功能则确保了系统的安全性和稳定性,有效维护了平台的正常运行。

此外,系统的技术实现基于Spring Boot和MySQL,确保了数据的高效处理和存储。通过合理的接口设计,前后端的数据交互流畅,提升了用户体验。

在未来的研究中,将进一步探索如何结合数据分析等技术,提升系统的智能化水平,满足更为复杂的市场需求。同时,随着外卖行业的不断发展,系统的功能和性能也需不断进行迭代和优化,以适应市场的变化。

综上所述,本论文的研究不仅为外卖点餐系统的设计与实现提供了实践案例,也为相关领域的后续研究奠定了基础,具有重要的理论和实际意义。


参考文献

[1]Shao W ,Liu K.Design and Implementation of Online Ordering System Based on SpringBoot[J].Journal of Big Data and Computing,2024,2(3):

[2]钟英杰,乌伟.外卖商家管理系统设计与实现[J].电脑编程技巧与维护,2024,(08):81-83.DOI:10.16184/j.cnki.comprg.2024.08.023.

[3]姚怡辰,丁雪晶.基于C#的实体餐饮店点餐管理系统的设计与实现[J].电脑知识与技术,2024,20(23):72-74.DOI:10.14004/j.cnki.ckt.2024.1124.

[4]任建伟,丁莎.基于微信小程序的点餐系统设计与实现[J].电脑编程技巧与维护,2024,(05):77-80.DOI:10.16184/j.cnki.comprg.2024.05.045.

[5]张乐.高校食堂自助点餐系统设计与实现[J].电脑与信息技术,2024,32(02):51-53.DOI:10.19414/j.cnki.1005-1228.2024.02.009.

[6]Liu H .Comparative Application of Teaching Methods in C Language and JAVA Programming Courses[J].International Journal of New Developments in Education,2024,6(1):

[7]王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.DOI:10.19850/j.cnki.2096-4706.2023.22.007.

[8]苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.DOI:10.15966/j.cnki.dnydx.2023.11.008.

[9]曾慧群.基于Android的智慧点餐系统设计与实现[J].现代信息科技,2023,7(14):15-19.DOI:10.19850/j.cnki.2096-4706.2023.14.004.

[10]Yang Y .Design and Implementation of Online Food Ordering System Based on Springcloud[J].Information Systems and Economics,2022,3(4):

[11]种倩倩,孙丽英,陈滨,等.基于微信小程序的点餐系统的设计与开发[J].电脑知识与技术,2022,18(19):66-69+73.DOI:10.14004/j.cnki.ckt.2022.1307.

[12]李章恒.校园外卖系统设计与实现[D].山东大学,2022.DOI:10.27272/d.cnki.gshdu.2022.004873.

[13]朱广跃.移动Web点餐系统的设计[J].集成电路应用,2022,39(01):124-125.DOI:10.19339/j.issn.1674-2583.2022.01.045.

[14]陈帅.微信点餐系统小程序的设计与实现[J].电子技术与软件工程,2021,(24):30-31.

[15]鹿俊聪.基于Android的食堂点餐系统的设计与实现[J].科学技术创新,2021,(22):101-102.

[16]冯秀玲.智能点餐系统设计与应用[J].电子技术,2021,50(06):30-32.

[17]侯金彪.一种基于Jsp和MySQL的外卖系统的设计与实现[J].安顺学院学报,2021,23(03):129-136.

[18]唐永洋,许嘉洁,乔波.基于MongoDB和微信小程序的点餐系统的设计与实现[J].电脑与信息技术,2021,29(01):25-27.DOI:10.19414/j.cnki.1005-1228.2021.01.008.

[19]李昊.基于微信小程序的智能推荐点餐系统的设计与实现[D].南京邮电大学,2020.DOI:10.27251/d.cnki.gnjdc.2020.000283.

[20]黄思杨.基于协同过滤推荐的安卓点餐系统的设计与实现[D].南昌大学,2020.DOI:10.27232/d.cnki.gnchu.2020.003538.


致  谢

在本论文的研究与撰写过程中,我得到了许多人的支持与帮助。在此,我谨向所有关心和支持我的人表示诚挚的感谢。

首先,我要感谢我的指导老师,他在整个研究过程中给予了我悉心的指导和无私的支持。他的专业知识和严谨态度对我有着深远的影响,使我在研究中受益匪浅。

其次,我要感谢我的家人,他们在我攻读学位期间给予了我无条件的理解与支持。在我遇到困难和挑战时,他们的鼓励让我倍感温暖,激励我不断前行。

同时,感谢所有参与问卷调查和用户测试的用户,你们的反馈和建议对本系统的改进和完善起到了重要作用。希望本研究的成果能够为大家的生活带来便利,并为外卖点餐提供更好的解决方案。

再次感谢所有关心和支持我的人,是你们的帮助让我顺利完成了这项研究。

点赞+收藏+关注 →私信免费领取本源代码、数据

更多推荐