基于微信小程序的线上点餐平台
原创申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计10577字,阅读大概需要3分钟
欢迎关注我的个人公众号:不懂开发的程序猿
1、项目设计的初步思路
-
角色划分
-
买家(手机端) 卖家(PC端)
功能模块划分
-
商品 商品列表 订单 订单创建 订单查询 订单取消 类目 * 订单管理 * 商品管理 * 类目管理
数据库设计 部署架构
环境的使用 VirtualBox 6.1.34 虚拟机系统 centos7.3
-
jdk 1.8.0_301 nginx 1.11.7 mysql 5.7.17 redis 3.2.8 Maven 3.3.9
-
日志框架 日志门面 SLF4j 日志实现 Logback
前端采用Vue框架+后端SpringBoot
2 系统分析
2.1 系统需求分析
2.2 产品结构分析
2.3 技术可行分析
3 系统设计
3.1 设计目标
3.2 系统功能分析
3.3 非功能需求
3.4 技术介绍
3.4.1 Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,并发能力在同类型的网页服务器中表现较好。Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。
3.4.2 Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
3.4.3 redis
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
3.4.4 MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
3.5 系统技术选型
3.5.1 前端技术选型
3.5.2 后端技术选型
后端选择的开发语言为 Java,版本为 jdk1.8,使用 Spring Boot 作为系统开发框架,采用经典的三层架构模式,分别为表示层、业务逻辑层、数据存储层。在此基础上集成 Mybatis 数据库持久层框架,Redis 作为缓存,使用 Nginx搭建图片服务器,在数据库方面选择 MySQL 数据库,使用 maven 作为项目统一jar 包下载管理,在项目版本控制方面,选用 Git 工具作为项目版本控制。
3.5.3 数据库设计
数据库设计的结果对系统后续设计具有很大的影响,不仅会直接影响数据库运行的整体效率,同时也会影响到数据库的运行质量。
3.5.4 设计原则
数据库设计首先要满足实际使用场景需求,在此基础上建立模型,数据库在设计时应该注意以下几点: ⑴ 不在数据库做运算,运算移除到业务层。 ⑵ 数据库字段要精简,字段数量尽量保持在 20 个以内。 ⑶ 在范式规则和冗余数据之间找寻平衡,在现阶段实际研发过程中通常保证数据相应速度优先,允许数据少量冗余。 ⑷ 在查询语句使用方面,尽量保证查询语句简单,慎用一些较耗性能的查询语句。 ⑸ 数据库表设计命名时,尽量为数据库表和字段命名为较直观包含一定业务意义的名称,方便开发和维护。 ⑹ 数据库表设计应该满足系统全部功能需求。
3.6 系统架构设计
3.7 前后端交互
3.8 国际化(i18n)
小程序上线部署前,为了适应多语言的变化,需要进行i18n操作,这里采用的是GitHub上的组件,链接地址
4 效果图
5 gitee代码托管平台
项目地址: