收藏 分享(赏)

New Life电子商务系统的设计与实现.doc

上传人:wo7103235 文档编号:6419963 上传时间:2019-04-12 格式:DOC 页数:31 大小:2.54MB
下载 相关 举报
New Life电子商务系统的设计与实现.doc_第1页
第1页 / 共31页
New Life电子商务系统的设计与实现.doc_第2页
第2页 / 共31页
New Life电子商务系统的设计与实现.doc_第3页
第3页 / 共31页
New Life电子商务系统的设计与实现.doc_第4页
第4页 / 共31页
New Life电子商务系统的设计与实现.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、长春科技学院本科毕业设计(论文)INew Life 电子商务系统的设计与实现摘 要近年来,电子商务发展迅速,各种基于网络的商城平台得到普及,越来越多的用户体验着网购带来的便利。而电商主要分为实物型电商,和服务型电商,在这里我门主要讲实物型电商 1。例如国内表现突出的电商平台如淘宝网、京东商城等,它们每天为数以万计的用户提供服务。电商系统不同于传统系统之处在于,它具有高并发、分布式、高可用、海量数据等特点。它应该能快速的响应用户请求,应该足够的稳定。这也要求它不能以传统的方式进行设计,电商系统要考虑更多的问题,如系统的结构、数据的存取、可靠性的保证、响应的速度等。本次毕业设计将独立完成一个 Ne

2、w Life 电商系统。New Life 将实现电商系统的基本功能。如用户登录、注册、购物车、订单、第三方支付等。New Life 的开发将使用一些当下流行的技术,如使用 Maven 管理项目,使用 SSM 框架开发程序,使用 Apache Shiro 框架进行后台用户登录认证、权限管理等,业务流程将尽可能地符合实际情况。关键词:电子商务系统;开源框架;数据库New Life 电子商务系统的设计与实现IIDesign And Implementation Of New Life Electronic Commerce SystemABSTRACTIn recent years, e-comme

3、rce has been developing rapidly, various web-based shopping platforms have gained popularity, and more and more users are experiencing the convenience of online shopping.E-commerce platforms such as and 360buy, which are prominent in China, provide services to tens of thousands of users every day.U

4、nlike traditional systems, the e-commerce system is characterized by high concurrency, distributed, high availability, and vast amounts of data.It should respond quickly to user requests and should be stable enough.It also requires it cannot in the traditional way to carry on the design, want to con

5、sider the problem of more electricity system, such as system structure, data access, and the assurance of reliability and response speed, etc.The graduation design will complete a New Life e-commerce system.New Life will implement the basic functionality of the e-commerce system.Such as user login,

6、registration, shopping cart, order, third-party payment, etc.The development of the New Life will use some of the popular technologies, such as using Maven project management, the use of SSM framework development program, using Apache Shiro framework for background user login authentication, rights

7、management, etc., the business process will be as much as possible to conform to the actual situation.Keywords:Electronic Commerce System Open Source Framework Database长春科技学院本科毕业设计(论文)III目 录第一章 绪论 11.1 研究背景与意义 11.2 国内电商行业现状 11.3 研究内容与目标 2第二章 理论技术基础 .32.1 相关理论基础介绍 32.2 相关技术及开发工具介绍 5第三章 NEW LIFE 的系统分析

8、与设计 .123.1 需求分析 .123.2 系统用例图 .123.3 系统重要实体 E-R 图 .133.4 数据库设计 .14第四章 NEW LIFE 系统实现 .174.1 开发环境 .174.2 项目结构 .174.3 重要模块的实现 .184.4 模块实现界面展示 .21第五章 总结 255.1 NEW LIFE 的缺陷及可行的解决方案 255.2 结束语 .26参考文献 .27长春科技学院本科毕业设计(论文)第 1 页 共 27 页第一章 绪论1.1 研究背景与意义互联网自 1969 年诞生以来,已经走过了将近 50 个年头。如今它已然成为人们生活中必不可少的娱乐、工作工具,并发挥

9、着越来越重要的作用。互联网给人们生活带来了便利,尤以各种电子商务系统为例。人们可以足不出户,从这些网上商城浏览购买自己所需物品,真可谓是“坐享其成” 。也因此电子商务得以迅猛发展。电子商务其实可分为两个方面,一个方面为单子方式,一种方面为商业贸易。其可以认为是利用简单、快捷、低成本的电子通讯方式,买卖双方不谋面地进行各种商贸活动。在这其中 B2B 模式的电子商务成为一种最为大家所熟悉,最为大家喜欢的实现形式,也就是新兴的专门做电子商务的网站 2。例如国外的亚马逊,亚马逊开始只是一家通过互联网售卖图书的网上书店而它在短短的两年时间一举超过无数成名已久的百年老店而成为世界上最大的书店。国内也有著名

10、的淘宝网,京东等知名的电商网站,每天也在不断的接待这数以万计的客户。所以说未来电子商务的前景是非常好的,随着电子商务的发展,客户们对期的要求也会越来越高,而且随着发展个性化、专业化是电子商务发展的两大趋势,而且每个网站在资源方面总是有限的,客户的需求又是全方位的,所以不同类型的网站以战略联盟的形式进行相互协作将成为必然趋势。1.2 国内电商行业现状中国是一个人口大国,电子商务对于中国人来说,就不可以只是方便就行了,还要考虑很多问人数多的时候卡不卡,面对众多订单时我的数据是否有错误,我的运输问题怎么办等等众多问题,而如何解决这些问题,解决的怎么样,就是这些电商脱颖而出的关键。例如国内著名的淘宝网

11、,从成立到现在,不断调整架构,优化设计,刷新着人们的认识。淘宝 2016 年“双十一” ,活动交易额 1207 亿,每一时刻都有数以万计的用户访问。淘宝虽然是国内首个电商平台,最早占领了市场,然而此刻并不能独霸电商世界。京东作为后起之秀,是中国最大的自营式电商企业,它以自己独特的经营方式也在电商行业站稳了脚。如今的各大电子商务迅速发展,分布式,高并发,高可用,海量数据的等,让更多的人想去了解这些电商系统的架构与实现。本次毕业设计旨在独立完成一个小型的电商系统,借此了解电商系统的业务流程,提高编程能力,学习更多更新的技术。1.2.1 分布式为了抗并发,电商系统采用分布式。数十台服务器,甚至百台、

12、千台、万台,包括:Nginx 负载均衡集群、Tomcat Web 中间件集群、Redis 缓存集群、RabbitMQ 消息队列New Life 电子商务系统的设计与实现第 2 页 共 27 页集群、MySQL 主从、Solr 全文检索集群等。1.2.2 高并发电商系统不同于传统的系统。传统系统并发量并不高,而电商系统可能在同一时刻就要承受数以万计的请求。1.2.3 高可用电商系统要 7X24 小时不间断运行。服务器一旦宕机,可能带来严重的后果。1.2.4 海量数据电商系统需要存储、管理海量数据,需要使用大量服务器。比如海量商品图片的存储,需要提供更多的存储空间和更快的访问速度。1.3 研究内容

13、与目标通过电商现状的分析,进一步认识到电商的发展具有广阔的前景。因此此次毕业设计决定独立完成一个小型的电商系统。这个系统包含基本电商所具有的功能。分为前台模块和后台模块。前台主要实现,用户注册、登录、商品浏览、购物车、订单、第三方支付;后台主要实现,商品管理、用户管理、角色管理、权限管理。在实现过程中,探索具体的业务流程,如用户注册的流程、订单支付的流程;研究后台系统如何与前端页面交互数据;如何高效的存储、查询数据。此系统将使用一些当下流行的技术,如使用 Java 开源框架 Spring MVC、Spring、MyBatis 构建项目,使用 Apache Shiro 进行登录认证、权限控制。在

14、程序实现的过程中不断强化这些技术的使用,并探究其实现原理,加强自身的编程能力、逻辑思维能力。系统每一个功能将参考真实电商系统,并结合自己的理解去实现。模拟真实的环境,在实现具体功能的同时,提高系统的并发性能,采取具体可行的措施提升系统的响应速度。努力将此系统做成一个可以和用户友好交互的、可以为外界提供完整功能的、拥有良好性能的电商系统。长春科技学院本科毕业设计(论文)第 3 页 共 27 页第二章 理论技术基础2.1 相关理论基础介绍2.1.1 面向对象系统分析与设计当下系统的分析与设计多采用面向对象的技术。而提起面向对象的的设计方式,面向过程的分析设计方式不可不提。面向过程的分析设计方式又称

15、为结构化分析法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。由于简单、清晰,易于学习掌握和使用,这种系统分析方法曾经盛极一时。然而随着计算机技术的快速革新,用户需求的提高和软 、硬件技术的不断发展变化,这种设计方式的缺点日益显露:(1)结构化分析法一切基于功能。这导致相同的功能模块不能再不同的系统之间复用,使得开发不同的系统都必须从始至终逐一实现功能,开发效率会很低。(2)结构化方式要求设计者从一开始就设计好各个功能模块,如果系统过于庞大,设计难度也会大大增加。(3)对于大型系统,使用结构化分析法将消耗相当长的周期,并且开发出的系统很难再扩展。面向对象的思想为系统分析设计注

16、入了新动力。面向对象的方式符合人类认知事物的过程,它抽象出不同的类,以这些类为模板创建出对象,不同的对象之间相会合作完成任务。面向对象的分析设计方式可以采用迭代的方式,它并不要求一蹴而就,而是在开发周期的不同阶段不断地迭代、完善,这样可以不必在设计初始就设计特别好详细的开发文档,从而降低了难度,提高了效率。面向对象方法学中的基本概念:(1)对象。简单地理解,对象就是现实世界中的具体事物。比如一个人,一个手机,它具有自己的相关属性和具体行为。(2)类。它是对同种对象的共同属性和相同行为的抽取。如果说一辆法拉利是一个对象,那么提供规范的的设计图纸就是一个类。根据一个类可以生产好多对象,一个对象是一

17、个类的实例化操作。(3)消息。不同对象通过它来实现通信,产生联系,从而相互协作,协同完成任务。面向对象方法有三大特性:(1)继承。现实世界中有许多类似,动物、哺乳动物、人这样的关系。它们有共同的部分,但哺乳动物又在动物的基础上添加了新的内容,而人既有哺乳动物的所有特征,又拥有自己独有的特性,这样逐层的扩展,不断添加新特性,也变的越来越具体。那么,在面向对象的世界里,动物、哺乳动物、人被抽象为类,他们之间的逐层扩展行New Life 电子商务系统的设计与实现第 4 页 共 27 页为被称为继承。显而易见,继承的特性避免了相同属性和相同行为的重复定义,并且表现出了事物与事物之间的层次关系。(2)封

18、装。形象地理解,封装就像把东西放在一个黑盒子里,使外界不能看到其中的具体事物。通过封装,使用者不能轻易地获取对象数据,提高了系统的安全性。(3)多态。从字面理解多态是多种形态的意思,在 Java 语言中多态体现在方法的重载、重写和子类对象用父类声明。这种特性使得程序更加灵活。这三大特性使得通过面向对象方式设计出的系统更加健壮,更好维护,并且开发效率也优于结构化分析方式。基于面向对象的分析设计方式的诸多优点,本次 New Life电商系统将参考这种方式,并使用面向对象的语言 Java 进行代码的开发。2.1.2 Java Web 开发模式在实际的程序开发过程中往往需要遵循一些规范或使用开发模型,

19、这样可以使得开发出的程序易于维护,还能够提高开发效率 3。而这些开发模型是随着计算机软硬件的发展、用户需求的改变、程序员编程经验的积累而逐步发展,趋于完善的。不同业务场景可以使用不同的开发模型,没有放之四海皆准的模型,只有同一场景下最合适的模型。在使用 Java 开发 Web 应用程序的过程中,出现过多种开发模式:(1)Model1 如图 2-1 所示图 2-1 Model1在模式一中,JSP 负责接受请求,并将数据封装到 JavaBean,调用 JavaBean 中的方法来处理逻辑,最后将处理结果展示给用户。JavaBean 负责封装数据和处理逻辑。这种模式优点显而易见,架构简单。缺点也很明

20、显,JSP 的职责过重,并且很难维护。(2)Model2 如图 2-2 所示长春科技学院本科毕业设计(论文)第 5 页 共 27 页图 2-2 Model在模式二中,Servlet 负责接受请求,把数据封装到 JavaBean 中,控制程序流程。JavaBean 负责封装数据。JSP 负责展示页面。这种模式每个模块各司其职,使得整个程序的结构清晰。Model2 符合著名的 MVC 设计思想。(3)三层模型如图 2-3 所示图 2-3 三层模型Model2 将复杂的逻辑代码分离到 Servlet 中,这样不同的模块相互分离,使得系统处于松耦合状态。然而,在现实项目开发中,常常在此基础上进行如图

21、2-3 的软件分层。这样的设计方式,提高了模块的复用性,进一步降低了模块间的耦合性,被称-为 Java EE 的经典三层架构,并被广泛的使用。New Life 将采用经典三层架构构建项目。2.2 相关技术及开发工具介绍2.2.1 JSP 技术JSP 全称 Java Server Page,可以实现在 HTML 中嵌入 Java 代码,是一种动态的服务器端的技术。JSP 技术诞生后,受到了 Java 开发者广泛的认可,因为开发者可以将所有的业务逻辑嵌入到 JSP 页面中,甚至一个应用只需使用 JSP。但是随着用户需求的不断提高,应用程序也越来越庞大,此时只用 JSP 技术必然造成代码繁杂,不够清

22、晰,难以维护问题。更多的程序员意识到这一点,逐渐将 Java 代码从 JSP 中分离,只用它来展示数据。表示层(JSP/Servlet)业务逻辑层(业务规则)持久化层(持久化逻辑,JDBC)New Life 电子商务系统的设计与实现第 6 页 共 27 页一个完整的 JSP 执行过程如下:图 2-4 JSP 运行流程(1)客户端请求 JSP 页面。(2)Web 容器接收到客户端请求,将指定的 JSP 转义成 Servlet。此处的 Servlet 就是一个普通的 Java 源文件。(3)编译器将此 Java 源文件编译成 Class 文件,类加载器将此字节码加载到 JVM方法区,并进行实例化。

23、(4)Web 容器调用此实例处理数据,最后将结果数据和 HTML 整合,响应给客户端。2.2.2 Java EE 开源框架现在几乎所有的企业级开发都会选用 Java 开发框架,如盛极一时的SSH(Struts2+Spring+Hibernate)框架,现下流行的 SSM(Spring MVC+Spring+MyBatis)框架。那么问题来了,既然 JSP+Servlet 完全可以开发出一个完整、功能完善的 Web 应用程序,那么为什么还要使用这些开发框架呢?使用JSP+Servlet 开发 Web 应用主要有以下缺点:(1)开发周期长。使用 Servlet,我们必须手写更多冗余的代码,开发效率

24、低。(2)需要在 web.xml 中配置每个 Servlet,不易维护。(3)一个 Servlet 中只能有一个方法处理请求,如果有更多的不同请求,将会生成庞大的 Servlet 集合。(4)某些代码繁琐。最典型的如,需要我们手动地从 Request 中获取参数,并将这些参数逐一封装到对象中。这导致程序员将大量的精力和时间浪费在单一的、繁琐的、毫无技术含量的代码编写上。(5)与数据库交互复杂。程序员必须自己编写连接数据库,发送 SQL 语句,获取执行结果,封装结果集的代码,这样的操作依然是繁琐的,费时的。这些缺点导致使用 JSP+Servlet 开发程序效率低,并且代码量大,模块重用性不高长春

25、科技学院本科毕业设计(论文)第 7 页 共 27 页等问题。而使用一些已封装好的开发框架则很好的避免了这些缺陷。这些框架将繁琐的代码封装起来,屏蔽掉了底层复杂的操作,帮助程序员更快更高效的开发出一个稳定的,安全的系统。常用的 Java 开源框架如:(1)SpringSpring 是一个基于 Java 的开源框架,它封装了复杂的 Java 代码,使得开发变得简单、有趣 4。不论上述提到的 SSH、还是 SSM 构建项目,都使用到了 Spring,可见Spring 是一个优秀的开发框架。Spring 通过分层方式将不同的模块独立出来,这些模块相互独立,可以选择性的使用一个或多个模块。它的架构图如下

26、:图 2-5 Spring 整体架构图Spring 之所以被程序员喜爱,更重要的是它独道的 IOC 和 AOP 思想的应用。所谓 IOC,是 Inversion of Control 的缩写,译为控制反转。 Java 创建对象有四种方式:通过 new 关键字创建、通过反射创建、通过 Clone 创建、通过反序列化创建。而最熟悉的也是最常用的是第一种方式。通过这种方式程序员需要自己去控制对象的创建,这样在 Web 程序开发中,将导致代码的耦合。一个明显的例子如:在程序的 Service 层中的方法中定义有如下 Dao 层的成员:UserService userService = new User

27、Dao()。那么当需要替换掉 UserDao 这个类时,将要修改 UserService 中的代码,如果其他类中也定义了此成员,那么需要修改的位置就不只一处。这就导致代码的高度耦合,不便于后期的维护。而 IOC 的思想巧妙地解决了这种问题。使用 IOC,对象将由 Spring 容器统一创建。并且 Spring 会管理对象与对象之间的依赖关系,可以通过简单的配置实现属性的注入,而当替换一个类时,只需添加此类,New Life 电子商务系统的设计与实现第 8 页 共 27 页重启应用而已。IOC 使程序处于松耦合状态,而 AOP 使程序更加灵活、减少同种功能代码的冗余使用。所谓 AOP 是面向切面

28、编程的意思。经常有人拿 AOP 和 OOP 来比较,然而两者并没有可比性。OOP 是一种处于全局的编程思想,而 AOP 为了解决某种问题的解决方案。一个典型的案例,需求是在程序中每个方法调用前后进行日志的收集,收集内容为何时哪个类调用了哪个方法。最简单的做法是,在每个方法中代码执行前后嵌入日志收集代码。这种方式缺点很明显,代码量大,并且都是重复代码。一种很好的解决方式是通过动态代理,在方法执行前后进行收集工作,但使用动态代理,需要为不同类型的类生成不同的动态代理类,这样导致出现大量的代理类。而 AOP 的使用轻松地解决了这种问题。将日志收集的代码从系统中剥离出来,独立到一个类(切面)中,通过设

29、置规则将这个类实现的功能插入到程序方法执行前后。在不需要这个功能时,只需修改规则,便可以去掉这项功能,这样做到了日志收集功能模块的“即插即用” 。同样的利用 AOP 还进行统一的事务处理、异常处理等。Spring 另一大优势在于它可以整合现下流行的各大框架。它就像一个大管家一样,在它的协调管理下各个框架有条不紊地协作着,共同服务于 Web 应用。(2)Struts2Struts2 是著名开源组织 Apache 的开源项目。它是一个 MVC 框架,它拦截器思想的使用让人耳目一新。它为每个请求实例化一个 Action,使用这个 Action 处理请求。也因此它是线程安全的。 (3)Spring M

30、VCSpring MVC 是一个优秀的轻量级的 MVC 框架。它是 Spring 的组件,可以与Spring 无缝整合,这也是它相对于 Struts2 的优势。另外无论是 Spring 还是 Spring MVC都可以使用注解的形式代替配置文件,注解的使用使得编程更加简洁,通常需要在配置文件中配置许多信息才能实现的功能,可能只需使用一个简单的注解就可以实现,这是另开发者兴奋的。Struts2 也是优秀的框架,它良好的结构、拦截器思想、丰富的功能等被程序员称赞。然而它的缺点也很明显,如引入值栈、OGNL 表达式和它的标签库等,导致性能不高。尤其是在高并发场景下,Struts2 就更显吃力了。如下

31、图是各种技术的性能比较:长春科技学院本科毕业设计(论文)第 9 页 共 27 页图 2-6 Spring MVC 和 Struts2 性能对比仅比较 Struts2 和 Spring MVC,Spring MVC 的抗并发能力是远超过 Struts2 的。Struts2 的核心是拦截器,而 Spring MVC 的核心是前端控制器(DispatcherServlet ) 。它的执行流程如下:图 2-7 Spring MVC 执行流程客户端发起请求到 Web 容器,Web 容器将请求转发给前端控制器( Dispatcher) 。前端控制器将请求交给处理器映射器(HandlerMapping) ,

32、处理器映射器通过访问路径匹配处理该请求的控制器,并告知前端控制器。前端控制器将请求交给匹配到的控制器,控制器执行具体的任务,并将结果数据和返回的页面的逻辑名称封装到 ModelAndView 对象中返回给前端控制器。前端控制器将 ModelAndView 对象交给试图解析器,视图解析器从ModelAndView 中获取数据渲染页面,响应给客户端。这就是一个完整 Spring MVC 处理请求的流程,从中不难发现,前端控制器起到了New Life 电子商务系统的设计与实现第 10 页 共 27 页至关重要的作用。还有一点要注意的是不论是 Spring 还是 Spring MVC,它们管理的对象(

33、Bean)默认情况下是单利的(Singleton) ,非懒加载的(no-lazy-init) 。也就是说默认情况下在整个 Spring 或 Spring MVC 容器启动时每个类只实例化一次,所以会有线程安全问题,使用共享变量时一定要注意。(4)HibernateHibernate 是一个开源的全自动的使用在持久层的 ORM(对象关系映射)框架。它对 JDBC 进一步封装,避免了程序中冗杂的 JDBC 代码。它的一大优势是可以自动生成SQL 语句,这使得将程序员从繁琐的 SQL 编程工作中解脱出来,这也是许多程序员热衷于使用它的一个重要原因。在使用 Hibernate 时,程序员不用去关心底层

34、数据库,因为 Hibernate 屏蔽了底层数据库,只需在其配置文件中配置相应属性,它就能自动生成针对不同数据库方言的SQL 语句,这提高了持久层的可复用性。然而,自动生成 SQL 语句并不是在所有的情况下都合适的,因为通过程序生成的SQL 语句可能并不是最优的,这导致效率的降低。另外 Hibernate 面对大批量数据更新也存在性能问题。(5)MyBatisMyBatis 也是一个持久层框架,但它需要手动编写 SQL。MyBatis 与数据库交互,大大减轻了程序员的压力。MyBatis 相对于 Hibernate 的优点在于:简单易学单一的 MyBatis 的 Jar 包只有不到 1MB 大

35、小,没有复杂的关联关系,不需配置繁琐的数据表映射关系,并且入门简单。更加灵活Mybatis 需要程序员编写 SQL,而不是自动生成 SQL,这使得可以将复杂的程序逻辑转化为灵活的 SQL,减轻程序的编写难度。SQL 与系统分离将 SQL 语句同一的写在 MyBatis 配置文件中,降低了 SQL 和程序的耦合,便于统一管理。面对高并发情况,MyBatis 性能优于 Hibernate,由于手动编写 SQL,可以对SQL 语句进行优化,进一步提高查询性能。综上,可以看出 SSH 框架适用于传统的项目,抗并发能力较弱。而 SSM 框架面对高并发的情况表现出优良的性能。电商项目要应对的是高并发、高访

36、问量的压力,因此New Life 选择 SSM 框架构建。长春科技学院本科毕业设计(论文)第 11 页 共 27 页2.2.3 MySQL 数据库对于一个 Web 应用来说,数据存储是一个值得考虑的问题。而将数据存储在关系型数据库中是一个很好的选择。流行的关系型数据库如 DB2、Oracle、MySQL、SQL Server 等,它们各自有优缺点,针对不同的场景应该选择合适的数据库。而对于电商应用来说,使用 MySQL 是一个不错的选择。MySQL 是一个小型的、开源的、免费的(Oracle 收购前)RDBMS。电商系统上线后每天可能产生大量的数据,日积月累,存储大量的数据导致数据库性能降低,

37、查询速度变慢,这时数据库将成为整个应用程序的瓶颈。这时就需要对数据库做集群或分库分表操作。而使用 MySQL 提供的集群方案优势在于,它可以很方便地实现数据库实例的横向扩展,可以通过添加 MSQL 节点应对激增的数据,更适合 OLTP(联机事物处理)应用。因此 New Life 使用 MySQL 存储数据。New Life 电子商务系统的设计与实现第 12 页 共 27 页第三章 New Life 的系统分析与设计 3.1 需求分析一个完整的电商系统需要有前台和后台模块。前台主要实现,用户登录、商品浏览、购物车、订单添加、第三方支付功能。后台主要实现,商品信息管理、用户信息管理、角色管理、模块

38、权限管理。对于前台,商品浏览不要求用户登录,而购物车、订单支付功能需要用户登录。对于后台,要求管理员必须登录,不同的管理员拥有不同的角色,不同角色被赋予不同的权限,因此通过角色的分配控制用户的操作范围。3.2 系统用例图系统用例图从系统角色出发,讨论角色所参与的功能以及不同功能间的关系,用例图直观的展示出系统的参与者和具有的功能模块 5。如下是 New Life 的前、后台用例图,它清晰地描述了整个系统将实现的功能模块。(1)前台用户用 户商 品 浏 览注 册登 录购 物 车 添 加订 单 添 加订 单 支 付图 3-1 前台用户用例图(2)后台用户长春科技学院本科毕业设计(论文)第 13 页

39、 共 27 页admin( 超 级 管 理 员 ) 商 品 管 理用 户 管 理角 色 管 理模 块 管 理新 增 商 品查 询 商 品新 增 用 户查 询 用 户新 增 角 色查 询 角 色新 增 模 块查 询 模 块amei( 商 品 管 理 员 )jay( 用 户 管 理 员 )sandy( 角 色 管 理 员 )jolin( 模 块 管 理 员 )图 3-2 后台用户用例图3.3 系统重要实体 E-R 图实体-联系图 (Entity-Relation Diagram)展现的是实体及其拥有的属性、实体间的关联关系。E-R 图可以帮助数据库设计者更好、更快地设计数据库模型。以下是 New

40、Life数据库建模过程中重要实体间的 E-R 图。New Life 电子商务系统的设计与实现第 14 页 共 27 页3.3.1 用户-订单- 商品用 户拥 有订 单1密 码 电 话用 户 名邮 箱支 付 类 型 邮 费实 付 金 额状 态付 款 时 间发 货 时 间交 易 完 成 时 间交 易 关 闭 时 间商 品商 品 标 题商 品 卖 点价 格库 存 数 量条 形 码图 片 链 接状 态属 于n n购 买 数 量总 金 额n商 品 描 述图 3-3 用户-订单-商品 E-R 图3.3.2 用户-角色- 模块角 色模 块名 称角 色 描 述名 称模 块 描 述 模 块 类 型拥 有用 户密

41、 码电 话用 户 名邮 箱n n拥 有nn图 3-4 用户- 角色-模块 E-R 图3.4 数据库设计数据库设计在整个项目开发过程中占有很重要的地位。一个良好的数据库模型有利于数据的存储,可以带来更好的性能。3.4.1 New Life 的物理数据模型下图是 New Life 系统的物理数据模型,它采用 PowerDesigner 绘制。PowerDesigner 是一个强大的建模工具。系统设计者使用 PowerDesigner 可以很方便地进行数据库建模。长春科技学院本科毕业设计(论文)第 15 页 共 27 页商 品 分 类 表分 类 ID父 分 类 ID名 称状 态排 序 号是 否 为

42、父创 建 时 间修 改 时 间bigintbigintvarchar(150)int(1)int(4)tinyint(1)datetimedatetime商 品 表商 品 ID商 品 标 题商 品 卖 点价 格库 存 数 量条 形 码图 片所 属 分 类状 态创 建 时 间修 改 时 间bigint(10)varchar(100)varchar(150)bigint(20)int(10)varchar(30)varchar(500)bigint(10)int(1)datetimedatetime商 品 描 述 表商 品 ID商 品 描 述创 建 时 间修 改 时 间bigint(10)text

43、datetimedatetime用 户 表用 户 ID用 户 名密 码电 话邮 件创 建 时 间修 改 时 间bigintvarchar(50)varchar(32)varchar(20)varchar(50)datetimedatetime订 单order_id实 付 金 额支 付 类 型邮 费状 态付 款 时 间发 货 时 间交 易 完 成 时 间交 易 关 闭 时 间物 流 名 称物 流 单 号用 户 ID买 家 是 否 已 经 评 价创 建 时 间修 改 时 间varchar(50)varchar(50)int(2)varchar(50)intdatetimedatetimedatet

44、imedatetimevarchar(20)varchar(20)bigint(20)int(2)datetimedatetime订 单 商 品item_idorder_id数 量标 题单 价总 金 额图 片varchar(50)varchar(50)int(10)varchar(200)bigint(50)varchar(50)varchar(100)订 单 物 流order_id收 货 人 全 名固 定 电 话移 动 电 话省 份城 市区 县收 货 地 址邮 政 编 码创 建 时 间修 改 时 间varchar(50)varchar(20)varchar(20)varchar(30)var

45、char(10)varchar(10)varchar(20)varchar(200)varchar(6)datetimedatetime购 物 车item_iduser_Id商 品 标 题商 品 主 图商 品 价 格购 买 数 量创 建 时 间修 改 时 间bigint(10)bigintvarchar(100)varchar(200)bigint(20)int(10)datetimedatetime系 统 模 块模 块 ID父 级 ID模 块 名 称模 块 类 型描 述 信 息创 建 时 间修 改 时 间bigintbigintvarchar(100)intvarchar(100)datet

46、imedatetime角 色 表角 色 ID角 色 名 称描 述 信 息创 建 时 间修 改 时 间bigintvarchar(30)varchar(100)datetimedatetime角 色 _模 块 表角 色 ID模 块 ID bigintbigint 用 户 _角 色角 色 ID用 户 ID bigintbigint 图 3-5 New Life 物理数据模型3.4.2 表关系与性能优化图 3-5 中,各表之间具有明确的关联关系,数据表之间的关联关系、主外键关系,可以维护数据的一致性,避免了数据冗余,这也基本满足了数据库三大范式的要求。对于传统项目来说,规矩的使用三大范式是必要的,是

47、行之有效的维护数据一致性的手段。然而,符合规范的表结构可能带来性能的降低,比如外键的使用虽然保持了数据的一致性,但却牺牲了性能,因为在跟新数据时数据库还必须维护数据表之间的关联关系,进行外键的检查。电商系统面临的是高并发场景,对数据库的访问性能要求很高,这就需要在数据一致性保证和性能之间进行权衡。而最终一致性向性能妥协,因为没有用户愿意去等待缓慢的数据库查询。综上,上图的物理数据模型只停留在理论上,还需进行一些优化,以提高性能:(1)不使用外键。外键实现了表记录的参照完整性,使用外键并不代表抛弃完整性的保证,而是在程序中维护这种参照关系,降低了数据库的压力。(2)适当的字段冗余。表之间的连接查

48、询相对于单表查询是耗时的,尤其在两张或两张以上大表关联查询时凸显。对于这种情况,解决办法是在其中一张表中添加关联表中的某些所需字段,这样就可以转化为单表的查询。这种方式是不满足规范的,因此被称为反范式。这也是空间对时间的妥协。典型的,在订单表中添加商品信息字段,避免了订单表和商品表的连接查询。New Life 电子商务系统的设计与实现第 16 页 共 27 页(3)拆分大表。一些表的字段很多,这会影响查询性能,这时可以将表中不常查询的字段拆分到一张独立的表中,这也称为数据表的垂直切分。(4)主键单调递增。主键保证了数据表记录的不重复,很多情况下需要通过主键检索记录,因此主键要选用合适的数据类型

49、。对于 MySQL 而言,应避免使用字符类型的数据作为主键。典型的,订单表不要使用 UUID 作为主键,而应使用 BIGINT 数据类型,并且设置自增。(5)合理的使用索引。索引的使用对数据表查询性能起到了非常重要的作用。使用索引的查询速度要高于全表扫描。以 MySQL 为例,MySQL 的 MYISAM 和 INNODB存储引擎使用的是 B+Tree 索引,B+Tree 是二叉树的变种,因此查询性能优于顺序查找。然而索引并不是建立的越多越好,因为如果在一张表上建立过多的索引,那么维护索引也是耗时的,数据的更新会导致索引的变更,这也是耗时的。因此应该在经常查询的字段上建立索引,并且不要在经常进行更新操作的表上建立索引,这可能导致维护索引的时间大于使用索引节约的时间。长春科技学院本科毕业设计(论文)第 17 页 共 27 页第四章 New Life 系统实现4.1 开发环境使用 Eclipse 4.6.3 开发代码JDK 1.8 和 Web 中间件 Tomcat 8 为运行环境使用 Maven 3.3.9 管理项目使用 MySQL 数据库的 5.7.13 版本使用 Power Designer 15.6 进行数据库建模使用 SSM 框架开发代码4.2 项目结构图 4-1 项目结构New Life 电子商务系统的设计与实现第 1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 电子商务

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报