《基于web的购物网站系统设计与实现.docx》由会员分享,可在线阅读,更多相关《基于web的购物网站系统设计与实现.docx(42页珍藏版)》请在课桌文档上搜索。
1、摘要:2英文摘要:31 .引言41.1 开发背景与意义41.2 国内外研究现状41.3 研究内容51.4 论文架构62系统开发技术与环境72.2 前端语言72.3 后端技术72.4 开发框架82.5 系统数据库82.6 运行环境82. 6.1硬件环境83. 6.2软件环境82.7本章总结93系统分析103. 1可行性分析103. 1.1经济可行性103.1. 2技术可行性103. 1.3操作可行性103.2需求分析113. 2.1功能需求分析H4. 2.2性能需求分析123.3系统流程分析133. 3.1系统开发134. 3.2登录135. 3.3系统业务流程图146. 3.4数据流程图153
2、.4 数据流程分析173. 4.1数据流图174. 4.2数据流图185. 4.3数据流图193.5 本章总结194系统设计概要204.1 系统开发软件的选择204.2 系统总体功能设计204.3 系统数据库设计204.3.1概念模型设计204.3.2数据库结构设计214. 4后端数据库交互介绍231. 4.1跨域解决方案234. 4.2数据库建立连接244. 4.3读取数据表245. 4.4查询数据表246. 4.5增加数据表记录247. 4.6修改数据表记录254. 5本章总结255系统详细设计和实现264.1 用户模块设计264.1.1 用户登陆注册模块设计264.1.2 录模块主要代码
3、:284.1.3 系统首页模块设计284.1.4 系统商品信息模块设计304.1.5 系统商品购买模块设计314.2 管理员模块设计325. 2.1订单管理模块设计325 .2.2门店管理模块设计336 .2.3商品管理模块设计345. 3bootstarp框架应用365. 4本章总结396系统测试396. 1功能测试396.2测试实例396. 3本章总结417总结和展望417. 1总结418. 2展望41参考文献42致谢42摘要:在信息化爆炸发展的当下,互联网新技术层出不穷。与此同时,电子商务的地位也是逐年升高,产值迅速增长。我们周遭的所有商品大都能通过互联网实现购买需求,京东、美团、淘宝等
4、平台提供着我们日常需要的服务。网购的平台种类繁多。随着更新换代的发展,它们已经包含了非常多的功能。但这同时也将成为一把双刃剑,繁多的功能在方便我们操作同时也给我们带来了一些不便。针对于现在的网购平台功能繁多杂乱的问题。如何开发一款使用简单、页面简洁,不管是前台还是后台,相应的操作人员都能轻松上手的网上购物系统便成为了当下备注瞩目的问题。对此,木文拟开发一款采用B/S结构,不需要安装指定客户端便可以运行,同时操作简单的网上购物系统。本文将从所用编译语言入手,然后做出系统所对应的需求任务。之后,再进行具体的开发设计,详细探讨本文系统的功能模块、数据流程等,并且针对主要的功能模块进行剖析说明。以HT
5、ML+MYSQL+PHP的模式实现一款B2C模型的线上购物系统。关键词:基于Web的购物系统;B/S:PHP;HTML;MYSQL英文摘要:Withtheexplosivedevelopmentofinformationtechnology,newInternettechnologiesemergeoneafteranother.Atthesametime,thestatusofe-commerceisalsoincreasingyearbyyear,andtheoutputvalueisgrowingrapidly.Mostofthegoodsarounduscanbepurchasedth
6、roughtheInternet.Jingdong5MeiTuan,Taobaoandotherplatformsprovidetheservicesweneedeveryday.Therearemanykindsofonlineshoppingplatforms.Withthedevelopmentofupgrading,theyhaveincludedmanyfunctions.Butitwillalsobecomeadouble-edgedsword.Variousfunctionsnotonlyfacilitateouroperation,butalsobringussomeincon
7、venience.Aimingattheproblemofvariousandmessyfunctionsofthecurrentonlineshoppingplatform.Howlodevelopanonlineshoppingsystemwithsimpleuseandsimplepages,whichcanbeeasilyusedbythecorrespondingoperators,whetherintheforegroundorbackground,hasbecomeanoticeableproblematpresent.Inthisregard,thispaperintendst
8、odevelopanonlineshoppingsystemwithB/Sstructure,whichcanrunwithoutinstallingthespecifiedclientandsimpleoperationatthesametime.Thispaperwillstartwiththecompilerlanguageused,andthenmaketherequirementsandtaskscorrespondingtothesystem.Afterthat,thespecificdevelopmentanddesignarecarriedout,thefunctionalmo
9、dulesanddataflowofthesystemarediscussedindetail,andthemainfunctionalmodulesareanalyzedandexplained.AnonlineshoppingsystembasedonB2CmodelisrealizedinthemodeofHTML+MySQL+PHP.Keywords:Web-basedshoppingwebsitesystem;B/S;PHP;HTML;MYSQL1.引言1.1开发背景与意义在当前国际社会中,信息化发展程度在一定程度上已经可以代表一个国家科技发达、社会现代化的程度。表明在当前的科技发展
10、趋势下,互连网已经是当今社会不可或缺的一部分。现如今在我们日常生活中,网络已经占据了重要地位,我们周遭的所有服务或者商品大都能通过互联网实现,比如京东、美团、淘宝等等平台都提供了我们日常需要的一些服务。从我们身边的这些现象也能清楚的看到未来互连网可以起到绝对关键的作用,将彻底成为我们日常生活或者是科技发展不可或缺的一部分。再从互联网的发展走进我们生活中,对于大多数用户,互联网最直接的应用就是网购,可以是各种形式的网购,购买生活用品、外卖、飞机票等等,网购的形式非常之多,同时,网购的平台也是种类繁多。随着一代一代网购平台的发展,这些小小的软件已经包含了非常多的功能。但这同时也将成为一把双刃剑,非
11、常多的功能能方便我们操作同时也能让我们的操作带来一些不便,现在的大型网购平台的功能的繁多杂乱,因此,本文拟开发一款可以做到使用简单、页面简洁,不管是前台还是后台,相应的操作人员都能直接轻松上手使用的网络购物系统,力图进一步简化网络购物的功能和后台系统的操作。L2国内外研究现状纵观国内外对于电子商务的研究和发展,美国得益于互联网技术的早期发展,其电子商务方面也已成为互联网世界的核心组成,在全球范围内有明显的优势,比如世界最大的电子商务平台亚马逊。国内虽然起步较晚,但依靠快速的发展,如今在电子商务领域内也已名列前茅。与此同时,电商平台的发展格局也在不断变化。2000年ebay收购了易趣,2004年
12、卓越被亚马逊所收购,2005年阿里巴巴全面地收购了雅虎中国等。隙在表明电子商务快速发展的同时,也不难看出电商激烈的竞争环境,需要我们不断发现创造创新点。再从当下国内发展较好的平台去看,比如京东、淘宝等等购物网站,它们经过数代更新发展,如今平台上囊括了各种功能。对于京东之类的网站,主营的是B2C的模式,界面清晰、分类详细,主营电子产品的同时也有服装、食品等等分类的商品,并且强调商品的高质量、高可信度。使得相关商品销量节节高增,销售范围也逐步扩大,为旗下分销商打下良好信誉度。淘宝作为典型C2C的平台,主要是入驻的商家与买家之间的交易。商家信誉度一般由品牌支撑,商品数目众多,种类繁杂,当然价格也会随
13、着品质有较大的落差。旗下天猫也以B2C的方式进行电子商务,但主要还是驻扎在平台上的商家提供服务。这种模式不仅为消费者提供了更多的商品选择,同时也提供了更多的工作岗位,缓解了当下社会的就业压力。可谓实现了双赢。当下国内外在线上交易平台的设计上常见为如下两种,B/S结构和C/S结构,B/S是浏览器和服务器,C/S即客户机和服务器。最初的开发模式都是C/S结构,主要流行于90年代初,而后才有B/S结构。但现在来看,B/S结构事实上也是C/S演变而来,而且,它相较于C/S改进了许多方面,从而发展至今。B/S结构的用户界面就是浏览器的界面,它使用浏览器代替了原先的客户端,并且通过浏览器实现了原先需要客户
14、端才能实现的前后端通信,比如与数据库的交互。如今,基于B/S模式构建的系统已经支持许多种不同的主流浏览器,比如:ChromesIE、SafarisFirefOX等等,并且同时支持不同的操作系统如WindowslO和MacOSlO等等。由于不需要客户端,B/S结构在很大程度上降低了用户组的操作难度,减少了许多使用步骤。本文主要着眼于网购系统的简便性,本文拟开发一款采用B/S结构,不需要安装指定客户端便可以运行,同时操作简单的网上购物系统。1.3研究内容本系统的设计与实现包括以下几个阶段:设计、分析以及最后的实现。同时为了保证各个阶段任务的顺利完成,比如各个功能模块的实现,相对应的说明文档是不可或
15、缺的。通过实现文档与目标预期文档的比对来查漏补缺,从而一步一步进行各个阶段的开发。保证每一步都不出错,尽量不在后续阶段返回重新改变前面阶段的成果。在本系统设计的最初阶段,主要结合所学的知识,进行相关资料的查阅之后,首先确定下后续所要使用的开发工具与方法。其次便是完成本系统的需求分析。在确定下开发工具与系统需求之后,再实际地进入到系统的实现中,也就是网络购物系统的设计与实现。经过确定,本系统的前端页面主要采用ps进行设计,html5.css3语言实现。数据库依靠mysql提供支持,包括相应数据的搜索查询删除改变以及相应用户的权限查询改变。动态页面实现依靠PhP对页面与数据库的交互进行实现。在完成
16、上述步骤即最终完成了系统的实现之后,最后的阶段就是调试测试以及细节上的优化To本文结构组织如下:第1章为引言,主要介绍本文研究的背景和意义,国内外研究现状和本文研究的主要内容。第2章为系统开发技术与环境,主要介绍实现本文系统的关键技术和框架,以及开发环境。第3章为需求分析,主要包括可行性分析,功能需求分析和流程分析。第4章为系统设计概要,将对应于各个需求进行各个功能模块的设计。第5章为详细设计与系统实现,将从数据库、视图等多个方面阐述系统的开发与实现,对系统进行详细的介绍。第6章为系统测试,在系统完成后对系统进行功能测试,确保功能的实现。第7章是全文的总结。2系统开发技术与环境本章节主要介绍实
17、现本系统的主要开发技术和环境配置。会先介绍本系统采用的各个编译语言,并说明其被选择的原因。后介绍实现本系统时用到的编译软件和硬件环境。2.2 前端语言HTML中文也叫超文本标记语言。不像c+、java之类的编程语言,HTML是作为标记语言来进行工作与开发的。所谓标记语言就是把文本和其他的一些数据信息进行结合,从而描述出一些电脑操作处理的电脑编码。HTML作为标记语言,使用标记标签比如htmlXhtml来进行编写。相类似还有许多,各种功能标签,这些标签共同组成了html。也可以简单理解为标记语言就是一套标签。而html5的意思就是HTML发展的5.O版本,也是现在最新的版本,加入了许多新的标签比
18、如video),使得HTML开发更简单更贴近现如今开发趋势。由于使用的是文本与文本标签,HTML最终处理实现的结果也是一个文本,通常为.html、.htm的后缀。HTML实现的是页面的结构,而页面的美化就交给了CSS,CSS也叫层叠样式表。作为HTML的皮肤,它描述了HTML各个结构的样式,比如位置、大小、颜色形状等等。为网页元素布局节省了大量工作。CSS3作为新一代CSS,增加的动画效果更是节约了许多工作量。JaVaSCriPt是编程语言,虽然名字带有Java,事实上,这是完全不同的、没有联系的两门语言。JAVAscript也简称为Js,Js最大的应用就是嵌入于HTML中,相较于HTML作为
19、骨架,CSS作为皮肤,Js是作为动作的存在,来响应HTML元素的事件对象的实现,或者是读写HTML元素。2.3 后端技术PHP也叫做超文本预处理器,其最大的特点是可以嵌入到HTML中来作为服务器编程语言。由于PHP语言开发之初的目的就是让人们可以更加快速简洁方便地开发自己的网站,因此PHP可以同时用于面向对象或者是过程的开发,在使用上非常的灵活。更重要的是PHP是一个开源软件项目,配套的软件基本也都是开源免费的,对于初入的学者,可以节约大量经费。虽然作为开源软件缺少了大型科技公司的支持,但是PHP社区发展到现在已经非常完善,足以解决各种疑难杂症。而且用PHP开发会使得软件的跨平台型很强,可以做
20、到不经修改同时运行在UNlX、LINUX、WlNDOWS下。2.4 开发框架Bootsrap作为一种前端框架,一般被用于移动开发中。其不仅仅包含了丰富的web组件,最重要的用途是用于响应式布局的开发。即通过一种布局使网页可以正常显示在手机、PC端。主要靠的是BOotStraP的栅格化的布局,通过像栅栏一样把网页分成几份,配合media媒体查询使得屏幕在不同分辨率下呈现出不同的栅栏格局。从而使得PC网页即使运行在手机端也能正常显示。正是因为对于响应式布局的重要作用,Bootstrap一经推出就成为了github上重要的开源项目,一直活跃到现在。2.5系统数据库毫无疑问,MySQL是当下使用最为广
21、泛的关系型数据库管理系统之一。和PHP一样,MySQL也是开源的,不需要授权费用也因此被使用非常广泛,不论是学习还是商用,都能看到MySQL的影子。体积小速度快也是本系统选择的原因。尽管功能不如大型数据库如SQLServer完善,但对于小型公司或者项目来说,已经是绰绰有余。MySQL使用标准的SQL数据语言形式,而且还提供了许多PHP的API,使用小巧方便,查询速度也很快。2.6 运行环境1 .6.1硬件环境本系统开发硬件设备如下:处理器为InterCORE17,内存8GB,硬盘空间50G以上。较低的配置带来的是极高的适用性,使得用户体验更好。2 .6.2软件环境软件环境指的是开发人员在开发软
22、件的时候用到的工具。提前确定软件环境的原因就是如果可以筛选出自己较为熟悉的方案,那么会大量节约开发的人力物力。也可以大量减少会遇到的问题。因为选择适合自己的开发环境会对开发产生非常大的影响。做到不产生严重的bug,而是类似于查漏补缺的学习与开发状态。皿本系统在开发时的软件环境主要如下:操作系统:WinClOWlO系统开发工具:vscode数据库:Mysql软件开发语言:htmlphp2.7 本章总结在本章所述工作结束之后,关于本系统所采用的技术、框架皆已介绍完毕。通过介绍完上述内容,本文已完成了对系统开发的前期准备工作,后续内容将全部围绕本系统来进行说明。3系统分析系统分析是工程作业中不可或缺
23、的环节。是以全局最优化为目标,对系统的各个环节进行定性或者定量分析。在本文中,系统分析包括可行性分析,此环节分析系统的各个实现可行性,保证后续工作的顺利进行。然后是功能的需求分析,即分析本系统受众所需要的功能模块并完成设计。然后是系统流程分析,对所设计的模块进行实际的演示记录,将功能落实到各个具体的模块上。最后是数据流程分析,此环节讲述了本系统中数据的主要传递方向,也是各个功能模块之间联系的桥梁,具有重要意义。3.1 可行性分析3.1.1 经济可行性由于该系统简洁的功能面板和操作方式,因此对经济方面并没有特别高的要求。同时,简洁的功能面板使得该购物网站系统还具有良好的扩展空间,并且结构清晰使得
24、业务扩展更为方便,相较于较低的开发成本,带来的效益将远高出成本,经济可行性是比较强的。同时在成本方面,mysql,php等等都是开源免费的语言或工具,同时,获得商品的详细信息的成本也可以忽略。多个方面都可以证实本系统的经济可行性。3.1.2技术可行性在技术可行性方面,html+php+mysql的开发模式已经是比较成熟的了,被许多开发人员所中意。html写前端页面,mysql提供数据库支持,php写后端交互,这样的开发模式清晰简单,可以快速上手操作,同时,发展完善的PhP社区也能解决遇到的疑难杂症,种种方面都证实了本系统的技术可行性。3.1.3操作可行性对于服务于普通客户的网站系统来说,操作可
25、行性毋庸置疑是非常重要的。而且,操作方面的简易程度很大程度上决定了系统的将来的推广程度、推广难度。所以,我们在开发系统的时候必须考虑操作可行性。而对本系统而言,操作可行性毋庸置疑是成立的。首先,本系统基于Web开发,通过浏览器即可使用。使用户与管理员都只需要通过浏览器而不需要安装指定客户端就可以进行相关操作。而且系统运行也只需要一台设备就能稳定实现。简洁的功能面板也使得此系统操作根本不需要相关指导培训就能立刻上手。在功能面板也是做好了需要的按钮提示等等。而且,网购模式对受众来说,已经是一种非常普及的方式了,操作方式也是类似,而且比目前的大多数购物系统更加简洁简单,非常好上手。多个方面来看,本系
26、统的操作可行性是成立的。系统的需求分析是系统计划中一个重要的阶段,是开发人员经过深思熟虑,充分了解用户的需求和对系统的定位并且确认之后,将用户口述化的需求等信息以具体实际的功能描述记录下来。通俗来讲此阶段就是分析出系统将要做什么,去实现什么,而不是先去考虑怎么实现。系统需求分析应该要做到非常完善的程度,而不是己经在开发阶段了再来修改需求,这是不允许的。系统需求在确立了之后,要求对其的修改要降到最低,尽量不改需求才能带来最高的开发收益。正是基于这些原因,系统需求是开发的全部阶段里非常重要的一部分。这要求了我们对需求的分析非常细致认真,同时不能出错,在记录下需求的时候不能出现矛盾的内容,同时需求内
27、容应该以模块化的方式进行分析编写,以带来良好的代码或者功能追溯性以及后续的可扩展性。3.2.1功能需求分析首先做的是系统中将会存在的角色以及不同角色所对应的操作的介绍,包括在前台进行功能实现的用户和在后台登录操作的管理员。具体功能模块如下:图3-1前台普通用户角色和操作图3-2后台管理员角色和操作3. 2. 2性能需求分析在性能需求分析中,我们应该要具备如下要求的功能性:(1)安全需求由于在本系统中存储了许多的信息,不仅仅是商品商家信息,更重要的还有用户的隐私信息,比如用户的电话号码、邮箱或者是订单,都具有较高的隐私要求。对此,我们必须要有良好的安全性,同时对用户的权限做出限制,绝不能出现越权
28、操作。要核实用户身份的真实性之后才可以进行操作。(2)便捷性由于本系统的受众是普通用户,因此系统里的所有功能必须要简介易上手易操作,而不需要操作手册等等的说明或者培训。对此,本系统在兼顾简介大方的同时,在功能模块方面,所有的功能也都是一目了然简洁易懂,操作简单,可以使用户操作起来非常方便,可以快速上手。(3)扩展性由于用户对系统的需求往往具有时效性,当下的需求与未来的功能需求可能会出现矛盾等情况。而系统的开发设计实现等都是以当前的需求进行的,对此,我们必须要考虑系统扩展简易程度或者能否进行后续的功能扩展。同时,在未来进行功能扩展的时候,不能对当前的功能结构产生比较大的影响。对此,系统的功能设计
29、等等要做到模块化开发,以此来方便未来的扩展维护。(4)稳定性系统在划分功能模块的时候,要做到“高内聚,低耦合”,从而确保各个模块功能的独立性,即使一个功能模块出现了异常,也可以只修改相应模块并且不会对整体功能造成影响。这样系统在以后才能稳定运行。才能保证系统的可靠稳定。3.3系统流程分析3.3.1系统开发在系统实际开发中,我们首先要把需求分析放在第一位,以此为基础进行开发方式、流程的选择、制定。在选择好系统开发技术和模型之后,我们再设计数据库以及编写各个需求的功能模块的代码。在上述流程都完成了之后再进行最后的测试,在测试方面,往往通过黑盒测试,即忽视掉代码,只关注于系统的视图层进行各个功能的测
30、试,在走完全部流程并且没有异常发生的时候,系统开发才算完成。具体的开发流程如下图所示图3-3系统开发流程图3.3.2登录在登陆流程方面,由于存在前台与后台两个视图,因此也有两个登录页面,但是不论是前台的登录界面还是后台的登录界面,其实现流程都是相同的。在输入相关的账号密码之后,系统会识别用户的角色,然后给予其登录相应界面的权限,而不会出现越权访问的情况。如果错误则会出现响应错误提示,相关的流程图例如下:图3-4登录流程图3.3.3系统业务流程图在业务流程中,我们最主要关注的是商品信息(包括详情、评价等等)、订单信息、交易流程。这也是本系统的核心业务功能,其他所有的功能都是基于服务这几个功能的情
31、况下开发设计的。因此也是做出了相关的购买流程图例,如下所示:图3-5商品购买流程图对于数据库中传递的数据,包括订单信息、商品信息、用户信息等等的读取流程图示如下:数据读取流程图图3-6除了要读取相关数据之外,同时对于这些数据我们还要进行数据库的写入,即用户把数据传递给数据库并记录,数据写入的流程图示如下所述:图3-7数据写入流程图除了对于商品相关数据信息的读取与写入之外,还有很重要的数据内容是具体的不同的个人用户所对应的信息的读取和写入。不论是前台普通用户还是后台管理员用户,对其身份信息都要进行核验之后才能分配相关权限。过下图所示,如果登录判断中,所登录角色为普通用户,则允许登陆前台并对商品收
32、藏评价购买或者自己的订单具有读取修改权限。如果是管理员角色,则允许登录后台管理系统,并对系统中的商品订单等具体信息进行增删改查的操作。除了对商品订单,管理员用户还可以在后台的用户列表查询所有前台注册的用户并对用户信息进行增删改查的操作,同时分配角色权限。用户的账号正常注册界面是在前台,但是注册的账号仅仅是普通用户的账号信息。也无法修改权限。管理员的权限只能通过后台增加管理员用户的操作来进行管理员账号的添加或者删除。具体的数据流程图示如下:价修息买 评息信购 蔽任单即 收人订商 /个 用户J存数据读率据共有权限Fk1数据库用户一账号密码验证身份验证权限分配存数据读数据管理员报错提示反馈审核商品管
33、理订单管理用户信息表存储用户注册读取图3-8角色数据流程图3.4数据流程分析根据上述数据流向分析,做出本系统的隔层的数据流图。3.4.1数据流图首先是用户登录模块的简单逻辑和数据流图,图示如下:图3-9数据流图用户在登录时,账号密码信息会在数据库中进行查询操作并返回结果。如果查询成功则依据查询到的角色信息展现相关的个人页面并展示相关数据。登录完成之后,在用户或者管理员对商品信息等进行操作的时候,数据首先传递给Sql语句并完成相应的操作,添加或者删除等等最后再把数据返回给师徒展现相关操作的结果。3.4.2数据流图数据流图是用图示的方式来简洁地表面系统中数据的传递和功能的逻辑实现。下图是系统主要的
34、数据走向也一些功能模块的数据流演示。主要数据源为用户和管理员。用户更多是对数据的查询操作,而管理员除了查询还包含对数据的修改操作。图示如下:图3-10数据流图3. 4.3数据流图然后是管理员部分的数据流图介绍,在管理员部分,除了有用户管理的模块之外,还有商品订单门店的数据管理。数据流主体还是用户和管理员,具体数据流程图如下所示:图3-11数据流图3.5本章总结在完成本章系统分析之后,系统的需求基本已经落实到了各个功能模块上。数据在各个功能模块之间的传递方向也清晰易见。即完成了将需求从口头化到纸面化的转化。后续,在有了具体的功能模块的需求之后,本文将开展对于系统功能模块设计的介绍。4系统设计概要
35、4.1系统开发软件的选择在开发过程中,我主要采用的编译工具是vscode,这是一款能在桌面上运行的跨平台源代码编辑器,而且具有丰富的语言支持和扩展生态,支持html与PhP的编译。数据库选用了mysql来提供系统数据支持,同时用navicat来编译数据库navicat是一款用户界面设计良好的数据库管理工具,非常容易学习。还能以单一管理工具连接多个数据库,在实际开发中应用广泛。4.2系统总体功能设计在认真思考了系统的全部需求并修改完善之后,正式划分出系统的功能模块,具体内容如下图所示:基于Web的购物网站系统用户注册S录管理员图4-1系统功能图4. 3系统数据库设计4. 3.1概念模型设计结束需
36、求部分之后,首先设计的是数据库部分。具体来说,就是用自己所选用的数据库管理系统,即navicat来设计并且建立需要的数据表。确定好字段和表关联,最后要求做到数据存储一目了然并且可以正确地从数据库中拿到自己需要的数据。实现数据库正确传值,完成系统的数据部分的功能。在正式设计的第一步就是要确立我们需要的实体。实体指的是一类事物的集合,在数据库中也会用到这个概念,那么此系统数据库中的实体分别为以下几个部分:图4-4订单实体图图4-5门店实体图4. 3.2数据库结构设计确立完实体之后就要结合实体与系统需求,分析实体与数据之间的关系、流向,然后进行数据库结构设计,除了要规范命名、控制字段的引用之外,最后
37、完成的数据库结构还要尽量减少重复无用的数据,并且要能够稳定运行。以下是主要的数据表设计:表4-6:管理员信息表admin序号字段名数据类型长度主键允许空说明1user-idint5是否id作为主键,自动生成2usernamechar16否管理员名3passwordchar32否管理员密码4namechar60否管理员昵称5emailchar60否管理员邮箱6creat-dateint10否管理员创建时间表4-7:用户信息表user序号字段名数据类型长度主键允许空说明1user_idint8是否id根据注册顺序由系统自动生成2USeJnamechar16否用户名3passwordchar32否用
38、户密码4emailchar60否用户邮箱5mobileint11否用户手机号码表4-8:商品信息表goods序号列名数据类型长度主键允许空说明1goods-idint8是否id根据插入顺序自动生成2cate-idint5否商品种类id3goods_namechar100否商品名4now-pricedecimal10否商品现价5OriginaLpricedecimal10否商品原价6goods_imagechar30否商品图片7goods-briefchar255否商品详情8goods-kucunint4否商品库存数表4-9:订单信息表Order序号列名数据类型长度主键允许空说明1idint10
39、是否id根据插入顺序自动生成2order_idchar15否订单号由系统随机生成并且不重复3USejidmediumint8否用户id6order_statusint1否订单状态(1、未付款;2、未发货;3、未收货;4、已完成)7goods-amountdecimal10否商品总价格9order_amountdecimal10否订单总价格10beizhuvarchar240否订单备注11created_dateintIO否订单创建日期4.4后端数据库交互介绍4.4.1 跨域解决方案由于浏览器是按照同源策略工作的,即无法执行其他网站的脚本行为。因此我们需要修改header,以使得系统接受任何网站
40、的访问请求,包括POST、GET等请求方式header(,Content-Type:text/html;charset=utf-8);header(Access-Control-Allow-Origin:*);header(,Access-Control-Allow-MethodsPOST,GET,OPTIONS);header(,Access-Control-Allow-Credentials:true*);header(Access-Control-A11ow-Headers:Content-Type);4.4.2 数据库建立连接在建立数据库链接之后,通过定义参数method来作为后续数据
41、库增删改的标志,以区分对数据库的操作,并打包数据库操作函数使得函数可以重复调用,节省工作量。Sconn=newmysql($servername,Susername,Spassword,Sdbname);if($conn-connect_error)die(连接失败,$Conn-connect_error);)Smethod=$_POSTmethod;4.4.3 读取数据表执行时判断参数为getlist时,执行查询语句,进行数据表读取操作。将返回结果存入arr数组后,将结果打包为json格式传递给前端。同时通过code参数判断函数是否成功调用。if(Smethod=getlist,)Ssql=
42、nSELECT*FROMsq,;$arr=array();$res=$conn-query($sql);if($res-num_rows0)while($row=$res-fetch_assoc()array_push($arr,$row);echojson-encode(array(code-200,data-Sarr);4.4.4 查询数据表method参数为detail时执行查询一条记录的函数,和上述读取数据类似。if(Smethod=detai)$id=$_POSTid;Ssql=SELECT*FR0Msqlwhereid=$id;echojson-encode(array(code-
43、200,data-$conn-query($sql)-fetch_assoc();4.4.5 增加数据表记录method参数为add是需要执行“增”的操作,即把前端传递来的数据加入数据库中。若插入成功,则Code返回200,否则,返回300,以此判断函数是否执行成功。同时返回插入记录的idoif($method=,add)Stitle=$_POSTrtitle;Sneirong=$_POSTneirong;$sql=INSERTintosql(title,neirong)VALUES(,Stitle,Sneirong,),r;echojson_encode(array(code-$conn-q
44、uery($sql)?200:300,data-$conn-insert_id);)4.4.6 修改数据表记录修改操作与上述增加操作类似。将前端返回数据插入需要执行的数据库语句中参与执行。最后给出结果参数,判断是否执行成功。if($method=xiugai)Stitle=S.POST,title,;$neirong=$_POSTneirong;$id=$_POSTid;$sql=UPDATEsqlsettitle=$titleneirong=$neirongwhereid=$id;echojson_encode(array(code-$conn-query($sql)?200:300);4.
45、5本章总结至此,本系统的需求皆已经落实到具体的功能模块上。再落实系统需求完毕之后,就是依据上述概要设计进行各个功能模块的详细设计。日处读完弁国宜”用户注册协isr5zfiWJfiBIQ5系统详细设计和实现5.1 用户模块设计5.1.1 用户登陆注册模块设计首先是登录模块,登录模块同时也包括注册模块。首先,注册界面会提示用户输入必要的个人信息进行注册,个人信息会在用户需要修改密码的时候被引用进行身份认证。填写完注册相关信息,账号密码用于登录验证,邮箱用于在修改用户密码时候的验证。填写完毕后,如果信息格式无误并且账号邮箱并未被使用过,则会提示注册成功并且跳转到登录页面。此时也代表注册的用户信息已被成功加入数据库中。在登陆页面则是对数据库的查询操作,如果输入的账号密码与数据库中的用户信息表匹配,则登陆成功并且跳转到系统主页进行购买浏览商品的操作。如果系统没有查到相关账号,则提示登录失败并提示用户先进行注册。用户的注册界面如下图所示:u注册Wi用户已注册了原号?清直接受死实现系统注册主要程序段:ffl户名: