2022年网上购物系统设计 .pdf
1 网上购物系统设计1. 概述1.1 设计题目题目:网上购物系统设计初始条件为:查询商品信息,购买指定商品,帐单显示,销售汇总等。1.2 可行性分析1.2.1 技术可行性网上购物系统网站采用LAMP(Linux+Apache+MySQL+PHP)架构平台技术来设计和实现此类系统, 使用该平台架构的好处在于它们在WEB 编程界被称为 “黄金搭档”,不光是因为他们都是开源软件容易获得的组合配置,更是因为他们组合起来优秀的performance,并且在快速开发和处理企业级应用方面也占有越来越重要的地位,作为一个网上购物网站的技术平台,我认为,在技术上是完全可行的。1.2.2 经济可行性传统方式下的购物销售活动经常会面临店面的租卖太贵、人事费用高、商品陈列受店面大小所限制、管理不易以及交通等问题,以此在入门成本高以及高风险情况之下,常常会使所卖商品价格身高、购物者不愿意远足去实地购买等问题。由于网络的普及性与不受时间空间的限制等特性,利用网络不但可以解决传统方式下开设商场是所遇到的局限,还可以利用网路的优势扩展商家的顾客群。2. 系统目标与建设原则2.1 系统目标随着互联网技术的不断发展,人们网上购物的数量也不断增加。由于Internet 提供了双向的信息交流,在线销售已经成为了热门。一般来说,网上购物为用户提供了以下的基本服务:系统设计时一般实现的功能有:会员中心:包括会员注册、会员登录,查看帐单等功能。商品列表:包括商品分类、商品查看、商品购买等功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 2 商品检索:产品的分类检索功能、用户通过关键字搜索查询产品,使其能快速找到所需商品并购买。购买申请:用户只需注册会员或登录会员后就可以对所选中的商品进行购买。发布商品:系统管理员用户可以添加新的商品信息或商品分类信息,包括图片预览、商品类别和新旧程度等。管理员后台:包括管理员登录、添加修改和删除商品信息,查看商品销售汇总等。LAMP 网上购买应用程序包含一系列要协调工作的模块。当用户访问网站时,用户由网上购物首页index.php 开始,它给用户提供从这个起始页面浏览整个网站所需的基本信息,用户可以用商品类别关键字在商品类别页面搜索需要购买的商品(searchlist.php ) 。在发布商品信息时,管理员用户在后台可以上传物品图片、物品类别等资料,以供买方用户查看(/admin/index.php?module=goods&action=add ) 。在物品列表中, 会员还可以查看物品的资料(goods.php )及购买价格。系统后台采用 MVC 结构,由单一的程序入口 /admin/index.php,根据用户输入的action动作参数和 module 和相应的模块参数,将程序重定向到相应的模块的处理里面进行处理。而系统前台采用的是PHP 控制程序 (负责调用模板 template和从数据库取数据和逻辑控制),和模板文件 (TPL 文件),其中模板文件中是HTML 标签和 PHP 的伪标记(用于PHP的控制程序替换为动态数据) ,模板文件关心的是如何显示,控制文件关心的是如何控制显示。2.2 系统建设原则页面模块化本系统在界面设计上采用模块化思想,把很多页面共有的部分集合为一个模块,这样在开发式遇到这些相似的页面部分就不需要重新编写。3层结构设计基于 3 层 MVC 的 B/S 架构设计,用户是从商品列表中选择物品,因此需要在服务器端有一个保存商品信息的后台数据库, 利用 B/S 结构负责把信息传送至客户端浏览器进行解析,故要有显示商品列表的清单,还有用户注册或登录页面等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - 3 3. 支撑环境规划3.1 网络逻辑结构图 3-1 图 3-2 B/S 架构工作原理3.2 软件支撑平台及开发工具电子商务网站的开发离不开交互式的服务,系统采用 PHP 技术实现交互式服务, 网上系统基于 B/S 架构,在设计过程中包含页面(HTML )的设计及客户端脚本( JS)设计。系统基于的开发调试平台如下:Linux Fedora8+Apache 2.0+PHP 5.2+MySQL 5.0 开发工具 : Zend Studio 5.0集成开发环境, DeamWeaver网页编辑器, UltraEdit 编辑器Request请求数据操作客户端PHP 应用逻辑层MYSQL 数据库Response Request Web Server Server Side Browser Client DBMS SQL DATA HTML 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - 4 4. 系统总体结构4.1系统功能模块系统功能模块图4.2主要功能模块说明用户注册登录管理模块在经营网上购物的过程中, 用户身份的确认对网上购物的商家来说是一个非常关键的环节,一方面起到对用户的身份确认作用,另一方面使商家能够掌握用户的基本信息,如个人资料、联系电话、地址等。该功能模块能够提供以下几个子功能:用户在线注册;用户登录管理;用户资料修改;只有进行登录并通过身份验证的用户,才可以进行在线购物等后继的处理。在用户购物结束离开该网站时,可以选择退出,清空对应的登录成功信息。商品检索查询模块网上系统中的商品列表是网站用来展示他们所销售物品的页面,也是用户完成浏览与选购物品过程的场所。网上购物系统用户注册登录管理模块商品检索查询模块购物管理模块后台商品信息管理模块后台账单管理模块后台用户信息管理模块后台销售汇总管理模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - 5 该模块能在网上随时提供在线的最新产品信息。该信息需要定期更新,客户可以随时获得的商品信息。在用户选择了某种产品时,可以显示详细的商品信息,提供全面的商品描述,客户可以充分了解所有商品,并灵活地从中选择商品参与购买。为使用户尽快看到所需产品信息,本模块提供了搜索的功能。该功能模块能够提供以下几个子功能:商品信息按类别分类检索;商品信息的关键字搜索;购物管理模块后台产品管理模块用于宣传商品,让用户通过网站自由地选择商品参与购买。该模块可以在用户选择购买购买的商品之后,将其所购买的商品信息保存在购物车中,直到用户确定全部的购买商品,同时在确认后生成相关的帐单信息。该功能模块能够提供以下几个子功能:用户可以随时查看当前购物车中的购买商品情况,并可以随时进行修改;注册的用户在通过会员验证之后可以查询以往详细的购买订单内容。后台商品信息管理模块后台商品信息管理模块用于确保网上系统中商品信息的时效性而提供的一个商品信息后台维护管理模块。借助该管理模块网站的后台维护管理人员可以随时对网上销售的商品进行新品追加、包括价格在内的商品信息更新、产品类别的增加和修改等功能。该功能模块能够提供以下几个子功能:商品的分类管理;商品的资料管理。后台帐单管理模块后台订单管理模块用于接收客户的购买帐单,并对订单进行有效处理、分配。其主要工作流程管理包含帐单管理、帐单处理进度管理等功能。该功能模块能够提供以下几个子功能:最新帐单信息管理,查看用户帐单;帐单处理;(6)后台用户信息管理模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 6 后台用户信息管理模块用于实现对网站后台维护管理用户的增加、删除及修改。为了保证信息维护的安全性,在进入对应后台维护管理模块时要依据管理员用户身份进入,从而强化用户权限的管理。(7)汇总信息管理模块汇总信息管理模块用于实现对网站所售物品的销售情况的汇总和统计。对应不同类型的物品类型给出相应的汇总情况。4.3 数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。数据库设计是对一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足拥有信息要求和处理要求。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。设计数据库系统时要首先充分了解用户各个方面的需求,包括现有的及将来可能增加的需求。数据库设计一般包括数据库的需求分析、概念结构设计、逻辑结构设计及物理实现。4.3.1 数据库需求分析进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难耗时的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库的速度和质量。用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。依据网上系统的处理需求,分析出系统的以下几个需求:每个商品都从属于一种类型;一个用户可以购买多件商品;一个用户可以搜索出多件商品;用户分为管理员用户和会员用户。一个订单对应一个用户和一件所购商品。一份帐单由多份订单组成。用户分为管理员用户和会员用户。管理员可以查看多个帐单情况。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25 页 - - - - - - - - - 7 管理员可以查看编辑和删除多个会员资料。管理员可以查看编辑和删除多个商品资料。一份汇总销售单由一份或多份帐单组成。管理员可以查看多份汇总销售单。4.3.2 顶层数据流图4.3.3 第 1 层数据流图购物管理系统会员管理员注册登陆查询商品商品信息购买信息账单信息登陆会员信息商品信息销售汇总信息删除修改编辑操作新的商品信息系统顶层数据流图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - 8 会员注册处理用户信息会员信息登陆验证数据库数据库登陆用户名密码结果查询处理查询查询查询结果商品信息提交购买订提购买信息处理订单账单信息数据库账单信息管理员查询查询商品信息会员信息操作处理操作处操作信息编辑修改删除操作销售汇总处理汇总查询系统第一层数据流图商品添加处理商品信息商品信息查询结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - 9 4.3.4 数据字典4.3.5 数据库概念设计概念结构设计是将分析得到的用户需求抽象为概念模型的过程。即在需求分析的基础上,设计出能够满足用户需求的各种石头以及它们之间的相互关系概念结构设计模型。这样才能更好、更准确地用某一DBMS 实现这些需求,这是整个数据库设计的关键。名字 :会员信息别名 :会员信息描述 :用来验证用户身份的数据信息定义 :会员信息 =用户名 +密码 +邮编 +联系电话 +地址 ; 位置 :保存到数据库名字 :购买信息别名 :购买信息描述 :用来确认购买商品的信息定义 :购买信息 =用户信息 +商品信息 ; 位置 :交给订单处理模块进行处理名字 :账单信息别名 :账单信息描述 :由多个订单信息组成,显示用户的购买记录和价格的数据信息定义 :订单信息 =所购买的物品+所需缴纳的款数 ; 位置 :保存到数据库 ,并显示给客户端用户名字 :会员信息别名 :账单信息描述 :由多个订单信息组成,显示用户的购买记录和价格的数据信息定义 :订单信息=所购买的物品+所需缴纳的款数 ; 位置 :保存到数据库,并显示给客户端用户名字 :商品信息别名 :商品信息描述 :具体的商品信息定义 :商品信息 =商品名称 +商品类型 +缩略图+添加时间 +有效期 +价格位置 :显示给客户端用户名字 :用户名密码别名 :身份验证钥匙描述 :用于与数据库中有相同用户名的密码进行匹配来验证用户身份定义 :用户名密码 =用户名 +密码位置 :交于身份验证模块处理名字 :编辑修改删除操作别名 :操作信息描述 :操作定义 :编辑修改删除操作=编辑指令 +修改指令 +删除指令位置 :交给服务器端进行处理名字 :操作信息别名 :操作信息描述 :用于对数据库中数据进行操作的数据库语言定义 :操作信息 =SQL 语句位置 :交给 DB 进行处理的信息名字 :查询结果别名 :查询结果描述 :从数据库中取出的数据定义 :查询结果 =数组位置 :交给服务器端进行处理的数据库的信息名字 :汇总查询结果别名 :汇总结果描述 :用于显示汇总资料的数据信息定义 : 汇总查询结果=金额总额 +商品信息位置 :交给服务器端进行处理的数据库的信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - 10 概念结构的主要特点是能真实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R 模型。设计概念结构通常有4 类方法:自顶向下:即首先定义全局概念结构的框架,然后逐步细化;自底向上:即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成自底向上策略中设计的各个局部概念结构。其中最经常采用的策略是自底向上方法,即自顶向下进行需求分析,然后再自底向上设计概念结构。n n n n 会员管理员购买查看订单m 账单组成1 商品1属于添加1 1 n 形成销售汇总单1 n 1 n 系统总体实体联系图商品分类查看名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 11 会员 E-R 图商品 E-R 图订单的 E-R 图用户名会员编号密码地址邮政编码E-mail 会员真实姓名联系电话注册时间商品商品描述商品分类编号商品名称价格有效期添加时间图片商品编号订单订单编号会员编号订单添加时间价格商品编号角色编号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 12 商品分类 E-R 图4.3.3 数据库逻辑设计4.3.3.1 E-R 图向关系模型转换把以上的 E-R 图的实体转换为关系模式如下: 会员(会员编号,角色,用户名,密码,联系电话,E-mail,真实姓名,地址,邮编,注册时间 ); 此为会员的关系模式,会员编号为主键。商品(商品编号,商品分类编号,商品名称,商品详细描述,图片,价格,有效期,添加时间); 此为商品的关系模式,商品编号为主键,商品分类编号为商品分类关系模式的外键。商品分类 (分类编号,分类名称,父分类编号); 此为商品分类的关系模式,分类编号为主键,父分类编号为商品分类关系模式的外键。订单(订单编号,商品编号,会员编号,价格,添加时间); 此为订单的关系模式,订单编号为主键,商品编号为商品关系模式的外键,会员编号为会员关系模式的外键。帐单(帐单编号,会员编号,添加时间,价格); 此为帐单的关系模式,帐单编号为主键,会员编号为会员关系模式的外键。商品分类名称父类编号分类编号账单会员编号金额账单编号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 13 4.3.3.2 系统总体关系模式图4.3.3.3 系统的总表图及表之间的关系图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - 14 4.3.3.4数据模型的优化(1)确定数据依赖会员:所有的键都完全依赖于会员编号。商品:所有的键都完全依赖于商品编号。商品分类:所有的键都完全依赖于分类编号。订单:所有的键都完全依赖于订单编号,价格也依赖与商品编号。(此处是存在传递依赖)帐单:所有的键都完全依赖于帐单编号。(2)对各个关系模式之间的数据依赖进行极小化处理在订单此处的价格是冗余,可以通过查询商品表得到商品的价格,但是为了方便查询,还是留在这里 . (3)按规范化理论进行逐一分析会员: BC 范式. 商品: BC 范式.商品分类 :BC 范式. 订单:第二范式 . 帐单:BC 范式. (4)确定是否进行合并和分解在订单的关系模式中存在传递依赖,但是为了查询效率和方便因素考虑,不进行分解和合并动作。4.3.4 数据库的物理设计数据库的物品存储放在MYSQL 数据库中。4.3.5 数据库的载入根据以上需求分析,在确定了各个表主键字段的基础上,在MYSQL 数据库环境中建立数据库以及表结构。数据库的建立:在 SQL 分析器中输入 SQL 语句Create Database Sale; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 15 表的建立 : 会员:在 SQL 分析器中输入 SQL 语句create table member (id int(10) not null primary key AUTO_INCREMENT, Role int(1) not null default 0, Username varchar(20) not null, Password varchar(20) not null, Phone varchar(15) not null, Realname varchar(10) not null, Address varchar(30) not null, Postcode varchar(10) not null, Addtime int(10) not null); 商品类型:在 SQL 分析器中输入 SQL 语句create table goods_cate (id int(10) not null primary key AUTO_INCREMENT, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 16 Name varchar(20) not null, Parent_id int(10) not null default 0, Foreign key (parent_id) references goods_cate(id); 商品:在 SQL 分析器中输入 SQL 语句create table goods (id int(10) not null primary key AUTO_INCREMENT, Goods_cate int(10) not null default 0, name varchar(20) not null, description text not null, image varchar(15) not null, price varchar(10) not null, valid varchar(10) not null, Addtime int(10) not null, Foreign key (goods_cate) references goods_cate(id); 订单:在 SQL 分析器中输入 SQL 语句名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - 17 create table orders (id int(10) not null primary key AUTO_INCREMENT, gid int(10) not null default 0, mid int(10) not null default 0, price float(10) not null default 0, addtime int(10) not null, Foreign key (mid) references member(id), Foreign key (gid) references goods(id); 帐单:在 SQL 分析器中输入 SQL 语句create table reckoning (id int(10) not null primary key AUTO_INCREMENT, mid int(10) not null default 0, amount float(10) not null default 0, addtime int(10) not null, Foreign key (mid) references member(id),); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - 18 4.3.5 程序调试和模块实现1.后台管理员会员管理模块(1)会员列表界面(2)会员资料编辑界面(3)会员资料删除完成界面(4)管理员界面(5)管理员修改密码界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - 19 (6)管理员修改密码成功界面2.后台管理员商品管理模块(1) 后台商品分类管理界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 25 页 - - - - - - - - - 20 (2) 后台商品添加分类界面(3) 后台商品分类添加成功界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 25 页 - - - - - - - - - 21 (3)后台商品列表界面(4)后台管理员添加商品界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - - - - - - - 22 (5)后台管理员添加商品成功界面(6)后台管理员商品编辑界面(6)后台管理员商品编辑成功界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 25 页 - - - - - - - - - 23 (6)后台管理员商品删除成功界面1. 商品查询模块1.商品查询主页面界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 25 页 - - - - - - - - - 24 2.搜索商品3.搜索结果界面4.3.6 数据库的运行和维护本系统的数据库主要运行在PHP的 WEB 服务器中, 与 PHP 的程序进行交互, 并提供数据存储场所和备份策略。5.研制报告课程设计是我来说是一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂,也更接近实际。数据库这门课的课程设计的目的是旨在要求我们进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容, 掌握正确的数据库设计的步骤与方法,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。研制过程包括在上机前应认真做好各种准备工作,熟悉所设计系统的需求及其功能,独立完成体系结构的设计、功能模块的分析和后台数据库的设计,通过上机检查后撰写课程设名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 25 页 - - - - - - - - - 25 计报告。数据库这门课程的学习对于我来说,是一个比较感兴趣的课程。通过这次课程设计,从设计需求分析,到实现各模块功能的设计及数据库设计,我对网上系统有了较深入的了解,基本掌握了数据库设计的思想。通过本次设计,对数据库系统概论这门课有了全新的认识。同时我也认识到了团结合作的重要性,在开始分析时,一个小组的同学互相讨论思想;在设计时,我也得到了同班同学的帮助。意识到了自己的不足,我会在后面的学习中注重理论学习与实践的结合,从而进一步培养自己独立思考问题、分析问题、解决实际问题的动手能力。6.参考文献王珊著,数据库系统概论(第三版) ,高等教育出版社王石 杨英娜著, PHP+MYSQL 应用开发吕强著, Web技术导论,清华大学出版社名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 25 页 - - - - - - - - -