资源描述
网上商城网站的设计与实现(商品管理与购物流程功能模块开发)内容摘要:本课题主要基于电子商务的基本原理,运用PHP开发技术搭建一个动态的网上商城的电子商务网站。它是在Windows系统环境下,以Mysql数据库开发平台,Apache网络信息服务器,采用PHP(Hypertext Preprocessor)技术开发的网上购物系统。本系统分为前台与后台两部分组成,前台主要针对消费者,主要包括商品展示、会员注册、购物车管理、商品收藏管理、订单管理等功能模块;后台由管理员使用,主要包括商品管理、进货管理、订单管理、系统管理等功能模块。通过这些功能的实现,给商家提供一个动态、交互式、具有商品提供、系统管理等功能的电子商务平台。关键字:电子商务,网络购物,数据库开发,PHP开发技术I第一章 绪论1.1 电子商务概述电子商务是伴随着信息经济的高速发展而产生的一个较新的概念,是一种新型的商业运营模式。可以概括为:电子商务Web(服务器)IT(信息技术)+企业业务。发展电子商务是不可阻挡的趋势,已逐渐成为企业、商家们不可或缺的营销手段。本系统属于典型的企业与消费者之间 (B2C)类型的电子商务系统。1.2 Web服务器平台与Web平台的动态设计技术目前流行三种最常用的Web服务器平台是:基于Apache HTTP Server的服务器平台、基于网景的NES的服务器平台、基于微软的IIS的服务器平台。Apache HTTP Server可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。而且PHP与Apache HTTP Server搭配,是业界公认的黄金组合,因此本系统便是采用Apache HTTP Server服务器平台。当前比较流行的Web开发技术有: ASP, PHP,JSP,ASP.NET等。ASP在国内比较流行,但是由于ASP的跨平台能力差,而且安全性不好;JSP在国际上比较流行,适合开发一些企业级电子商务系统,但由于其在技术上和成本上要求都比较高,现在在国内运用的还比较少;ASP.NET是Microsoft .NET Framework中的一组用于构建Web应用程序和XML Web Service的技术平台,有一定的复杂性;而PHP 是秉承Linux 的GNU 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。加上它和Linux,Apache 和MySql 的紧密配合,用PHP编写的代码执行起来会更快、更稳定。用PHP编写的代码,不用改变就可以在不同的WEB服务器上、不同的操作系统下运行。相比之下,我们选择了PHP语言来开发本系统。1.3Web平台系统的开发方法在探讨电子商务的基本原理以及WEB相关开发技术的基础上,我们以软件工程方法完成了网上商城系统的开发。开发过程中所做的工作包括:整个系统的需求分析、系统设计和所有模块的具体实现、系统测试等。第二章 系统分析2.1 开发背景与开发意义2.1.1 开发背景21世纪的今天,网络在人们生活中已经日益盛行,越来越多人已经离不开网络。人们已经不再满足于了解最新信息、查找资料等一些传统的网络使用方式,而是过渡到娱乐、购物等新兴的网民生活。网上购物,成了当今广大群众的时尚。而商家,也逐渐重视起网络的作用,充分利用起网络的低成本、高效性来宣传企业形象和销售商品。因此,为了方便广大群众,满足商家的需求,我们专门构建网上商城系统。2.1.2 系统开发的意义长期以来,大部分的销售活动,都是面对面的销售,如:店铺销售、广交会、上门推销等。这些销售活动,都会受到地域、时间、环境等方面的影响,从而给企业、公司等的销售管理带来极大的不便。而且信息的人工管理,也存在诸多缺点。而网上商城,正好能全面解决这样的问题。产品生产-销售-客户订单管理系统软件为企业、公司等的销售管理带来了极大的方便。产品生产-销售-客户订单管理系统能够为用户提供可靠的信息储存和快捷的信息处理手段。作为计算机应用的一部分,使用计算机对企业、公司的产品销售信息进行管理,具有手工管理所无法比拟的优点。因此,开发这样一套管理系统成为很有必要的事情,它能够具体化、合理化的管理单位的销售信息情况,用结构化的思维方式去了解计算机的工作原理。2.2 可行性分析2.2.1 技术可行性分析本系统采用PHP+Mysql+Apache进行开发,其中前台用HTML嵌入PHP进行页面开发和管理用户界面,提示信息完善,界面友好有亲和力;后台采用Mysql数据库开发和管理数据库,部分关键内容采用事务处理机制,具有很强的错误处理能力。本系统的开发环境使用现在特别流行的开源Apache服务器,使用方便、运行稳定、安全可靠。PHP+Mysql+Apache这个国际公认的网站开发黄金组合,在电子商务系统开发上,得到广泛的应用。如易趣网、百度有啊、ecshop等大型电子商务网站。综上所述,本系统在技术方面是可行的。2.2.2 操作可行性分析本系统采用B/S架构,对销售信息进行网上管理,操作简单易懂,对用户来说不需要高深的计算机专业知识,只要管理员能够懂得使用网络,就可以对商城进行使用和维护。2.2.3 经济可行性分析由于本系统属于模拟的网上商城系统,整个系统并不算太大,因此开发成本不算太高。整个开发过程由两个人参与,只需要两台PC机和上述的各种软件,就可以实现全部的开发任务。由于PC机是我们各自原有的,而且无需专门升级硬件;而各种软件,又是能够在网上免费下载的,因此,整个开发成本可以说是非常的低廉,这也为我们以后进一步完善网站提供了非常大的方便。在使用成本上,用户只需要拥有一台能够连接到国际互联网上的计算机,通过注册就可以在世界的任何一个角落使用网站的全部功能和服务。而且对计算机的硬件的需求也不是很高,软件方面也没有特殊的需求,易于广大用的访问与使用。因此,从经济可行性分析来看,这个网站体现了经济实惠,但是功能强大的特点。2.3 需求分析2.3.1 初步调查本次调查主要是由我们两个同学一起通过亲身体验现在各大 B2C 网站的购物流程,如卓越网、百度有啊、淘宝网、京东商城等等,熟悉其实现购物的方式,了解其管理的运作方式和管理业务流程,分析现在 B2C 网上商城的基本运行情况和不足并探讨其需求。同时,参考了相关网站的调查分析报告等。2.3.2 用户需求分析随着互联网的高速发展,Web应用技术也得到了迅速提高。电子商务平台便是基于这些互联技术发展起来的。而基于 B/S体系结构的网上购物系统正是电子商务的典型,系统简单却功能强大。由于客户端服务器(C/S)应用程序可维护性差,而且对客户端计算机要求功能必须相当强大。为了解决这个缺点,浏览器服务器(B/S)应用程序应运而生。客户端只要求安装有浏览器,就可以与服务器连接,运行整个应用程序。与此同时,由于服务端与客户端分离,应用程序的版本不管如何更新,都只会在服务器端进行,这样客户端可以节省大量资源和时间。近年来,B/S结构越来越受到企业和公司等的喜爱和重用,选择B/S结构是当前电子商务系统开发的明智之举,能充分适应市场的需求。本系统便是采用B/S结构进行开发的。2.3.3 购物流程图图2-1 购物流程图2.3.4 数据流图由于原始的数据流程图存在操作的重复性和流程的不合理性,经过我们两个人的讨论,再根据网上商城系统的购物流程,我们采用从总体到局部、逐步细化的办法,绘制出如下的数据流图:第一层:图2-2网上商城顶层数据流图第二层:P0图2-3网上商城第二层数据流图第三层:P1P2.1P2.2P2.3图2-4网上商城第三层用户管理数据流图P3P3.1图2-4网上商城第三层购物车管理数据流图P2P1.1P1.2图2-4网上商城第三层个人账户管理数据流图P4P3.1P3.2图2-4网上商城第三层订单管理数据流图2.3.5数据字典(1) 关键部分数据项(由于篇幅有限,这里仅对部分数据项进行描述)名称:用户登录ID 总编号:11-001 别名:login_id 编号:001 数据值类型:整型 长度:11长度:50名称:用户登录名称 总编号:11-002 别名:login_name 编号:002 数据值类型:字符型 类型:字符长度:30名称:手机 总编号:11-003 别名:phone 编号:003 数据值类型:字符型 类型:字符 长度:13 名称:家庭电话 总编号:11-004 别名:tel 编号:004 数据值类型:字符型 类型:字符 长度:11名称:上次登录时间 总编号:11-005 别名:login_time 编号:005 数据值类型:字符型 类型:时间函数 名称:用户地址 总编号:11-006 别名:user_address 编号:006 数据值类型:字符型 类型:字符 长度:50名称:邮编 总编号:11-007 别名:user_zipcode 编号:007 数据值类型:字符型 类型:字符 长度:10名称:用户qq 总编号:11-008 别名:user_qq 编号:008 数据值类型:字符型 类型:时间函数 长度:15 名称:商品ID 总编号:11-009 别名:goods_id 编号:009 数据值类型:整型 类型:数值 长度:11 名称:商品名称 总编号:11-010 别名:goods_name 编号:010 数据值类型:字符型 类型:字符 长度:120 (2) 数据流描述名称:商品类型ID 总编号:11-011 别名:type_id 编号:011 数据值类型:整型 类型:数值 长度:5 数据流编号:D-01 名称:商品信息 别名:olm_goods 简述:管理员在网站系统后台添加的商品 来源:管理员 去向: P3.1 组成: 名称+图片+价格+运费+加件运费+所属类型+所属分类+品牌+ 数量+描述+添加时间+更新时间 数据流编号:D-02 名称:订单 别名:olm_order 简述:用户购买商品生成的信息 来源:用户 去向: P4.1 组成: 订单号+商品ID+支付方式+送货方式+收获地址ID+用户ID+总 价+订单时间+订单状态+备注(3) 数据存储数据流编号:F1 名称:用户信息表 简述:注册网站的用户基本信息总表 组成:用户 ID+用户名+密码+Email+手机号 +上次登录时间 关键字:用户ID 相关联处理:P1.1 P1.2 P2.3数据流编号:F2 名称:地址表 简述:注册网站的用户所填的收货地址 组成:ID+地址+用户ID+收获人+邮编+固定电话号码+手机号码+Email 关键字:ID 相关联处理:P2.2数据流编号:F3 名称:收藏夹表 简述:注册网站的用户添加到个人账户的商品 组成:ID+商品ID +用户ID+收藏时间 关键字:ID 相关联处理:P2.2 数据流编号:F4 名称:短消息表 简述:管理员发给网站注册用户的信息 组成: ID+发给的用户名+内容+时间 关键字:ID 相关联处理:P2.2数据流编号:F5 名称:订单表 简述:用户购买商品确认后生成的信息总表 组成: ID +商品ID+支付方式+送货方式+地址ID+总价 +备注 关键字:ID 相关联处理:P2.1 P4.1 P4.2 P4.3 第三章 概要设计3.1 总体方案设计3.1.1 系统目标(1)提高公司企业用户的经营管理效率,减少管理工作上的重复操作等。 (2)简化操作过程,提高资源的共享能力,增进查询速度。 3.1.2 划分子系统此基于电子商务理论与PHP技术的网上商城购物系统,分前台功能和后台管理功能: (1)前台部分由用户使用,主要包括用户管理(用户登录、注册),商品浏览、购物车管理,个人账户管理。 (2)后台部分由管理员使用,主要包括管理员身份验证,商品管理,订单管理,会员管理,系统管理。3.1.3 系统结构总体设计图 3-1系统功能结构图3.1.4 系统运行环境要求(1)硬件环境要求: 1 GHz以上处理器。 Microsft Windows 支持的VGA 或分辨率更高的监视器。 512MB内存以上。 (2)软件环境要求:本系统是在Microsft Windows XP平台下开发的,所采用的开发语言是PHP,后台采用了MySQL Server 5.0数据库,服务器用Apache。这样的黄金组合,大大的提高了数据处理的速度。 操作系统:Windows XP 系列 数据库:MySQL5.0 (3)语言种类:简体中文版 (4)显示参数:分辨率:1024768;色彩:256 色以上3.2 数据库设计 3.2.1 数据库概念结构设计 (1) 系统主要功能模块E-R 图mnm用户送货方式发货商品订购商品名称商品ID商品价格用户ID用户名密码n n n1n n管理员短信息公告发布密码用户名标题时间内容内容发送1 图3-3 实体和实体之间的关系E-R图注:实体集的属性已经部分省略(2)部分相关数据表表3-2管理员信息表(olm_admin)字段名称代码数据类型是否为空管理员ididsmallint(5)not null管理员名称usernamevarchar(60)not null管理员emailemailvarchar(60)not null管理员密码passwordvarchar(255)not null注册时间add_timevarchar(15)not null最新登录时间last_loginvarchar(20)not null最新登录iplast_ipvarchar(11)not null表3-3商品品牌信息表(olm_ brand)字段名称代码数据类型是否为空品牌ididint(7) not null品牌名称namevarchar(50)not null品牌logologovarchar(80)not null备注notestextnot null链接路径urlvarchar(255)not null顺序sorttinyint(3) not null是否显示is_showtinyint(1) not null表3-4购物车信息表(olm_cart)字段名称代码数据类型是否为空购物车ididmediumint(8) not null用户登录idlogin_idint(11) not null用户session idsession_idvarchar(32)not null商品idgoods_idmediumint(8) not null商品编号goods_snint(11) not null商品名称goods_namevarchar(120)not null单件运费freightdecimal(10,0)not null加件运费addfreightdecimal(10,0)not null商品质量goods_weightdecimal(10,0) not null市场价格market_pricedecimal(10,2)not null商城价格mall_pricedecimal(10,2)not null商品数量goods_numsmallint(5) not null表3-5收藏夹信息表(olm_collect_goods)字段名称代码数据类型是否为空收藏夹ididmediumint(8) not null用户登录idlogin_idmediumint(8) not null商品idgoods_idmediumint(8) not null添加时间add_timedatetimenot null表3-7商品信息表(olm_goods)字段名称代码数据类型是否为空商品ididmediumint(10) not null编号goods_snint(10)not null名称goods_namevarchar(120)not null商品信息标题goods_titlevarchar(300)not null商品类别idtype_idsmallint(5) not null商品品牌idbrand_idint(7) not null商品分类idcat_idsmallint(7) not null库存goods_numint(11) not null库存警告数量warn_numsmallint(3) not null已售数量sold_numint(11) not null商品质量goods_weightdecimal(10,3) not null商品单位unitvarchar(10)not null进货价purchase_pricedecimal(10,2) not null市场价market_pricedecimal(10,2) not null商城价mall_pricedecimal(10,2) not null活动价格promote_pricedecimal(10,2) not null活动开始时间promote_start_datedatetimenot null活动结束时间promote_end_datedatetimenot null单件运费freightdecimal(10,2) not null加件运费addfreightdecimal(10,2) not null图片名称img_namevarchar(100)not null小图路径small_imgvarchar(255)not null大图路径big_imgvarchar(255)not null原图路径original_imgvarchar(255)not null是否上架is_on_saletinyint(1) not null添加时间add_timedatetimenot null更新时间up_datedatetimenot null排序sortsmallint(4) not null精品推荐is_besttinyint(1) not null新品上架is_newtinyint(1) not null热门商品is_hottinyint(1) not null特价商品is_specialtinyint(1) not null备注noteslongtextnot null表3-8商品分类信息表(olm_goods_cat)字段名称代码数据类型是否为空分类ididsmallint(5) not null分类名称namevarchar(50)not null类型idtype_idsmallint(5) not null父类idparent_idsmallint(5) not null备注notesvarchar(300)not null顺序sortsmallint(4) not null是否显示导航in_navtinyint(1)是否显示is_showtinyint(1) not null表3-9商品类型信息表(olm_goods_type)字段名称代码数据类型是否为空类型ididsmallint(5) not null类型名称namevarchar(50)not null是否激活enabledtinyint(1) not null表3-10订单信息表(olm_order)字段名称代码数据类型是否为空订单ididint(11) not null用户登录idlogin_idint(11) not null收件人地址idaddress_idint(11)not null付款方式paymentvarchar(50)not null配送方式shippingvarchar(50)not null总价格totalint(11) not null下单时间timedatetimenot null表3-11订单动作信息表(olm_order_action)字段名称代码数据类型是否为空订单活动ididmediumint(8) not null订单idorder_idmediumint(8) not null支付状态pay_statustinyint(1) not null配送状态shipping_statustinyint(1) not null订单完成状态order_statustinyint(1) not null登录时间log_timedatetimenot null备注notesvarchar(255)not null表3-12订单商品信息表olm_order_goods)字段名称代码数据类型是否为空订单商品ididint(11) not null订单idorder_idint(11)not null商品idgoods_idint(11)not null商品名称goods_namevarchar(300)not null商品价格goods_pricedecimal(11,0)not null商品数量goods_numint(7)not null商品质量goods_weightdecimal(11,0)not null表3-15用户登录信息表(olm_user_login)字段名称代码数据类型是否为空用户登录idlogin_idint(10) not null用户登录名称login_namevarchar(30)not null用户emaillogin_emailvarchar(100)not null密码login_pwdvarchar(32)not null登录时间login_timedatetimenot null激活状态login_is_activesmallint(1) not null3.2.3 连接数据库在本系统充分发挥PHP5.0支持面向对象编程的特性,将常用的函数封装在一个类里面。比如由于需要多次连接数据库,而且这种连接是一项很消耗资源的操作,因此,在本系统中对数据库连接的部分写成了一个 PHP 文件。文件名为db.inc.php,有需要连接数据库的文件包含这个文件就可以了(关键代码请看附录一)。为了方便,我们专门做了一个数据库的配置文件config.inc.php,用来管理数据库的连接信息,数据表的一些常用操作,如数据添加、查询、删除、更新等,由于使用特别频繁,我们也将它特地装到Goods.inc.php文件里面。同时,我们还将一些专门针对某些数据表的操作函数,也封装在这个文件中。后面将直接调用这些函数,由于篇幅有限,不再做具体的介绍(部分关键代码请看附录二)。第四章 详细设计4.1 前台设计4.1.1前台总框架网站前台部分主要提供给用户使用,是系统对外的窗口。主要包括用户注册、登录,商品浏览,购物车管理,个人账户管理等几个部分。由于篇幅有限,本文只对部分模块的实现进行描述。(1) 模块功能介绍 用户管理:注册新用户、登录、修改用户个人资料。 商品浏览:在商品的显示介绍页面,可以收藏商品或者加入购物车。 购物车 :添加产品到购物车、购物车信息修改、下订单。订单模块:查询个人订单列表、查询某笔订单的详细信息。个人账户:订单查询,对收藏夹、地址的管理。(2) 前台文件构架 图4-1前台文件结构图4.1.2 用户管理模块 (1) 新用户注册 (2)用户登录 用户登录页面主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息。4.1.3 商品浏览 用户在商品显示页面(goods.php)对具体商品进行详细了解,并在商品显示页面对商品进行收藏或者加入购物车,已注册的会员还可以对商品进行咨询或者评论等。4.1.4 购物车模块 用户在浏览商品时,如果对想购买的商品,可以点击“收藏”把商品加入收藏夹;也可以点击“购买”把商品放入购物车,此时页面便自动跳转到购物车列表,(3)生成订单 如果用户对商品满意,并修改好购物车的商品数量后点击“去结算”,便跳转到订单信息确认与填写页面,(4)订单提交成功页面4.2 后台部分 4.2.1 后台总体框架 后台是前台功能实现的基础,只能由管理员进行使用与维护。主要包括管理员身份验证,商品管理模块,订单管理模块,会员管理模块,系统管理模块组成。后台功能介绍: (1)功能模块介绍 管理员身份验证:为合法用户提供一个后台入口。 订单管理模块:网站管理者对用户订单的执行和编辑状态。 商品管理模块:增加商品的品牌或商品的种类;向商品表插入前台首页展示的商品信息。 会员管理模块:查询所有注册用户,对一些非法或失信用户进行删除操作。 系统管理模块:管理员向前台首页添加友情链接信息。(3) 后台文件结构图 4-10 后台文件结构图4.2.2 管理员登录 在地址栏中输入后台登录地址,将转到管理员登录页面。该页面的功能是对管理员身份验证,用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。管理员登录页面的运行结果下图所示:4.2.3 订单管理 在订单管理下,可以处理订单的状态,分为未付款订单、配货中订单、已发货订单、已完成订单,管理员根据接收到的用户信息处理订单状态4.2.4 商品管理 (1)添加商品 单击导航区的“添加商品”超链接,系统将打开添加商品页面,该页面主要用于将商品信息添加到数据库表中,以提供前台商品展示。由于前台展示商品时,包括小图,中图和大图三种格式,因此我们做了一个包括添加图片水印的图片处理类(关键代码请看附录四)。(2)商品列表 点击导航区的“商品列表”超链接,会出现所有商品的信息,该页面主要对商品信息进行更改,删除商品,(3)增加商品分类 该模块用来对新增商品种类的录入(4)增加商品品牌 该模块用来对新增商品种类的录入, 4.2.7 系统管理 (1)商城配置 点击左侧菜单栏的“商城配置”链接,进入配置页面,就可以添加或修改商城的具体设置(2)导航设置 导航设置用来配置导航的详细信息,从而实现前台页面导航的动态设置第五章 系统测试5.1 测试方案 由于考虑到人为、条件有限等各种因素,我们采用黑盒子的测试方案。 5.2 测试项目及结果说明测试项目包括系统的前台与后台,经过认真测试,结果基本能够实现系统目标的要求,效果截图均已包含在本论文的各章节中。第六章 总结经过一段时间的努力,我们终于完成了网上商城网站系统,基本实现了题目的基本要求。但是由于经验不足,对报表统计的实现功能,还没有完善,这算是一个缺陷与遗憾。不过我们一定会努力学习,尽早实现该模块功能。总的来说,在做这个毕业设计的过程中,我们查阅了大量关于网上销售的相关资料,切实地按照软件工程的步骤,从需求分析,概要设计,详细设计,数据库设计,再到编码,调试运行,测试等步骤。从中我们学到了很多东西,对我们来说,无论是理论还是实践上都是一个较大幅度的提高,可以说是理论到实践的一个飞跃。我们还了解了软件开发的大体过程,在当今竞争激烈的社会中只有学到本领才能有立足之地,通过这次综合实验也使我们知道作软件开发的辛苦,首先要有足够的耐心,要勇于面对密密麻麻的代码,无数遍的调试,和无数遍的修改,但是,当你调试成功时,你就会感到这些努力的意义,成功的喜悦。软件开发,还要注意借鉴,查看已有的例子的代码,这样可以节省大量的时间,同时也实现了代码重用。此外,我知道了基础课的重要,要学好一门编程语言,一定要动手,实践是最好的方法。 总的来说,对我个人而言,这次毕业设计的确提高了我自己的动手能力,让我认识到了自己的不足,同时多亏了在开发网站的过程中钟文老师的指导以及同学们给予的帮助,使我顺利地完成了毕业设计,在此我对你们表示衷心的感谢!参考文献1 陈军,PHP+MySQL经典案例分析,北京:清华大学出版社,20082 许登旺,PHP程序开发范例宝典,北京:人民邮电出版社,20073 陈争航,PHP 5+Mysql 5 web 应用开发宝典,北京:电子工业出版社,20084 王石,精通PHP+MySQL应用开发,北京:人民邮电出版社,20065 曹培强,Photoshop CS2平面设计实战从入门到精通,北京:人民邮电出版社 20076 (美) Eric van der Vlist,Web 2.0高级编程,北京:人民邮电出版社 2008 25
展开阅读全文