网上购书系统课程设计.docx
- 文档编号:26887017
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:25
- 大小:370.08KB
网上购书系统课程设计.docx
《网上购书系统课程设计.docx》由会员分享,可在线阅读,更多相关《网上购书系统课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
网上购书系统课程设计
课程设计
课程名称___数据库__________
题目名称___网上购书系统_______
学生学院____计算机____________
专业班级
学号
学生姓名
指导教师_______左亚尧________
2012年1月16日
1引言3
1.1课程设计选题4
1.2课程设计的目的4
1.3本选题的背景4
2系统分析和设计4
2.1功能及性能分析4
2.1.1功能需求4
2.1.2性能需求4
2.1.3数据流图5
2.2系统的开发环境5
2.3系统的总体设计6
3数据库设计6
3.1数据库概念结构7
3.1.1数据库中各表的数据描述如下:
7
3.1.2E-R图(各表ER图关系)9
3.2数据库逻辑结构10
3.2.1关系模型及优化10
3.2.2视图的设计10
3.3数据库的实现10
3.3.1表10
3.3.2安全性设计11
3.3.3一般性设计11
4详细设计与实现14
4.1文件目录结构设计及说明14
4.2注册模块程序说明15
4.3登录模块程序说明15
4.4购物车模块说明16
4.5书籍管理模块18
结论21
参考文献21
1引言
1.1课程设计选题
《网上购书系统》
1.2课程设计的目的
通过数据库系统课程设计,熟悉了Mysql数据库管理系统的结构与组成;掌握了Mysql数据库管理系统的应用技术和的使用;应用ASP开发工具实践了《在线考试系统》的数据库应用系统的设计方法、开发过程和SQLSERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
1.3本选题的背景
随着互联网的普及和发展,电子商务在互联网的潮流中扮演着重要的角色,改变着人们的日常生活情况。
网上购物不仅是一种潮流也是对人们的生活有巨大的的便利。
我们不乏看到许多的百货的电子商务商城,本课程设计是设计一个网上购书系统,让买书在互联网进行。
2系统分析和设计
2.1功能及性能分析
2.1.1功能需求
主要功能需求主要有:
●产品(书籍)管理:
主要是书籍的管理,管理书籍的名称、书籍介绍、价格等,主要是管理员有此权限。
●订单管理:
主要功能是把会员通过网站订购的产品,以列表的形式展示出来,并且能够修改记录的状态,来区分未结算订单和结算订单之间的状态。
●会员管理:
主要包括会员注册、登录等,以及会员登录后提供的结算功能。
令会员有购物车管理的功能。
●商品搜索:
提供搜索框,给予搜索功能。
主要根据用户输入的关键字,搜索与关键字匹配的产品名称和介绍。
2.1.2性能需求
数据一致性:
一旦管理员增加了书籍在商品库中,会员能够实时的看到,体现数据的一致性。
用户增加到购物车的书籍要实时增加,购物车中的书籍一旦经过结算应当改变相应的状态。
2.1.3数据流图
网上购书系统整体流图如下:
2.2系统的开发环境
开发平台与运行环境:
Windows7+PHP5.4.3+Mysql5.5.24+Apache2.2.22
2.3系统的总体设计
总体布局和框架
各个功能设计流程图略。
以下为网站包含文件(共13个文件夹和14PHP应用脚本程序,详细在详细设计中给出)
3数据库设计
3.1数据库概念结构
3.1.1数据库中各表的数据描述如下:
Ø产品数据表(o_product):
产品数据表用于记录管理员上传的产品信息,有产品名称,产品介绍,市场价,商城价。
如下:
字段
数据类型
长度
NULL
默认值
字段说明
id
int
4
Notnull
Auto_increment
产品编号自增
title
varchar
200
null
产品名称
intro
text
null
产品介绍
price
int
6
Null
市场价格
mprice
int
6
null
商城价格
fileid
varchar
200
null
附件id
commend
varchar
10
null
推荐
images
varchar
200
null
图片名称
Ø产品附件数据表(o_files):
产品附件数据库,用于保存与产品相关的图片文件信息。
字段
数据类型
长度
NULL
默认值
字段说明
id
int
4
Notnull
Auto_increment
编号自增主键
fileid
varchar
200
null
产品id
filetitle
varchar
255
null
附件标题
filename
varchar
200
Null
文件名称
filetype
varchar
200
null
文件类型
Ø会员数据表(o_members):
会员数据表,用于记录网站会员的登录,以及姓名、电话、地址等信息。
字段
数据类型
长度
NULL
默认值
字段说明
id
int
4
Notnull
Auto_increment
会员编号自增主
varchar
200
null
注册email
password
varchar
255
null
会员密码
nickname
varchar
100
Null
昵称
truename
varchar
100
null
真实姓名
sex
int
4
null
性别
telphone
varchar
100
null
固定电话
mobile
varchar
100
null
移动电话
address
text
null
通讯地址
admin
int
4
null
是否为管理员
Ø订单数据表(o_order):
会员结算后,产生的购物清单保存在订单数据表中,便于管理人员查看会员已经购买的物品。
字段
数据类型
长度
NULL
默认值
字段说明
id
int
4
Notnull
Auto_increment
订单编号自增主
pid
int
4
null
产品id
mid
int
4
null
会员id
price
int
6
Null
价格
number
Intr
4
null
数量
total
int
6
null
总价
over
int
4
null
是否购买
3.1.2E-R图(各表ER图关系)
3.2数据库逻辑结构
3.2.1关系模型及优化
所有的表都是自增主键ID,所以都符合3NF,无需另外优化
3.2.2视图的设计
无视图设计
3.3数据库的实现
3.3.1表
该系统共设置了四个表目,各表目结构如下:
Ø产品数据表(o_product):
产品数据表用于记录管理员上传的产品信息,有产品名称,产品介绍,市场价,商城价。
Ø产品附件数据表(o_files):
产品附件数据库,用于保存与产品相关的图片文件信息。
Ø会员数据表(o_members):
会员数据表,用于记录网站会员的登录,以及姓名、电话、地址等信息。
Ø订单数据表(o_order):
会员结算后,产生的购物清单保存在订单数据表中,便于管理人员查看会员已经购买的物品。
3.3.2安全性设计
权限的设置,只有管理员有插入新图书的权限。
3.3.3一般性设计
主要是对数据库表的两种完整性进行设计:
实体完整性:
通过设置主键都已实现。
参照完整性:
产品数据表与产品附件数据表相联系,插入、删除、和更新数据都要同步,会员表和订单表相联系
建表主要代码:
SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
--数据库:
'onlinestort'
--
----------------------------------------
--
--表的结构:
'o_product'
--
CREATETABLE`o_product`(
`id`int(4)NOTNULLauto_increment,
`title`varchar(200)defaultNULL,
`intro`text,
`price`int(6)defaultNULL,
`mprice`int(6)defaultNULL,
`fileid`varchar(200)defaultNULL,
`commend`varchar(10)default'NO',
`images`varchar(200)defaultNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8AUTO_INCREMENT=5;
--
--表的结构:
'o_files'
--
CREATETABLE`o_files`(
`id`int(4)NOTNULLauto_increment,
`fileid`varchar(200)defaultNULL,
`filetitle`varchar(255)defaultNULL,
`filename`varchar(200)defaultNULL,
`filetype`varchar(100)defaultNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8AUTO_INCREMENT=2;
--
--表的结构'o_members'
--
CREATETABLE`o_members`(
`id`int(4)NOTNULLauto_increment,
`email`varchar(200)defaultNULL,
`password`varchar(200)defaultNULL,
`nickname`varchar(100)defaultNULL,
`truename`varchar(100)defaultNULL,
`sex`int(4)defaultNULL,
`telphone`varchar(100)defaultNULL,
`mobile`varchar(100)defaultNULL,
`address`text,
`admin`int(4)default'0',
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8AUTO_INCREMENT=2;
--
--表的结构'o_order'
--
CREATETABLE`o_order`(
`id`int(4)NOTNULLauto_increment,
`pid`int(4)defaultNULL,
`mid`int(4)defaultNULL,
`price`int(6)defaultNULL,
`number`int(4)defaultNULL,
`total`int(6)defaultNULL,
`over`int(4)default'0',
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=utf8AUTO_INCREMENT=5;
4详细设计与实现
4.1文件目录结构设计及说明
根目录下包含17个对象,三个文件夹和14个PHP应用脚本程序。
Index.php:
网站首页
Cart.php:
购物车程序
Global.php:
全局配置文件,数据库配置等
Login.php:
登录认证程序
Product.php:
书籍列表程序
Regiseter.php:
用户注册
Search.php:
书籍搜索
Store.php:
书籍详情页面
User.php:
用户密码修改
User_order.php:
用户订单管理
User_product.php:
用户书籍管理
User_product_upload.php:
书籍图片上传程序
Class:
核心类程序文件夹
Folder:
书籍图片上传文件夹
Templates:
页面模板文件存放文件夹
网站首页:
4.2注册模块程序说明
用户点击首页导航注册按钮,则会跳转到regiseter.php页面,填写表单进行注册,这时与会员数据表(o_member)进行交互,如果没有出现用户名重名,邮箱重复使用等情况则可通过注册。
如下图:
4.3登录模块程序说明
用户点击首页导航登录按钮,进入登录页面,输入登录邮箱和密码,如果邮箱和密码与会员数据表的数据相符则会提示登录成功,并跳转到修改密码页面。
如下图
登录成功后:
4.4购物车模块说明
用户在书籍列表中选择书籍后进入书籍详细页,选择放入购物车按钮,书籍进入用户购物车页面内。
购物车模块有结算功能,用户在购物车页面的书籍复选框中选择商品勾选,勾选完毕后即可点击结算按钮。
代码:
php
session_start();
include'global.php';
//获取以GET方法传递到本页的数据
if(isset($_GET["id"])){
$g->setSql("selectid,title,mpricefrom#_productwherefileid='".strval($_GET["id"])."'");
$p=NULL;
$g->loadObject($p);
$cart->addItem($p->id,$p->title,1,$p->mprice);
}
//获取以POST方法传递到本页的数据
if(isset($_POST["do"])){
switch($_POST["do"]){
case"cart":
if(count($_POST["cid"])>0){
foreach($_POST["cid"]as$v){
$g->setSql("selectid,title,mpricefrom#_productwhereid='".$v."'");
$p=NULL;
$g->loadObject($p);
$cart->addItem($p->id,$p->title,1,$p->mprice);
}
}
break;
case"delete":
if(count($_POST["cid"])>0){
foreach($_POST["cid"]as$v){
$cart->removeItem($v);
}
}
break;
case"order":
if(isset($_SESSION["i"])){
$cartArray=$cart->listArray();
if(count($_POST["cid"])>0){
$total=0;
foreach($_POST["cid"]as$id){
$order="";
$order["pid"]=$cartArray[$id]["id"];
$order["mid"]=$_SESSION["i"]["id"];
$order["price"]=$cartArray[$id]["price"];
$order["number"]=$cartArray[$id]["number"];
$sprice=$cartArray[$id]["price"]*$cartArray[$id]["number"];
$order["total"]=$sprice;
$g->insertObject("#_order",$order);
$total+=$sprice;
}
//清空购物车数据
$cart->clear();
//显示结算数据,并返回首页
$g->alert("结算成功,共计费用:
".$total."元","index.php",5);
}else{
$g->alert("请选择确定购买的产品","cart.php",1);
}
}else{
$g->alert("注册用户请
","login.php",5);
}
break;
}
}
?
>
4.5书籍管理模块
书籍管理模块涉及到产品数据表和产品附件数据表的操作,书籍管理模块为会员管理表admin表项为1的用户拥有。
用于管理上传图书信息,插入产品数据表和产品附件数据表。
如下图:
用例:
增加一本叫做《人人都是产品经理》的书:
效果如下:
代码:
php
//表单处理代码
if(isset($_POST["do"])){
$action=strval($_POST["do"]);
$error="";
switch($action){
case"addProduct":
$f=$_POST;
if($f["title"]==""){
$error.="书籍名称不能为空
";
}
$g->setSql("selectidfrom#_productwheretitle='".$f["title"]."'");
$g->query();
if($g->getLines()>0){
$error.="产品已经存在
";
}
if($error==""){
/*****创建文件夹代码开始****/
$path=
$pathSign="/";
$path="folder/".$uid."/".date("Y")."/".date("m")."/".date("d");
$dirArray=explode($pathSign,$path."/thumbnail");
$tempDir='';
foreach($dirArrayas$dir){
$tempDir.=$dir.$pathSign;
$isFile=file_exists($tempDir);
clearstatcache();
if(!
$isFile&&!
is_dir($tempDir)){
@mkdir($tempDir,0777);
}
}
/******创建文件夹代码结束***/
$p["title"]=$f["title"];
$p["intro"]=$f["intro"];
$p["price"]=$f["price"];
$p["mprice"]=$f["mprice"];
$p["fileid"]=md5(time().$uid);
$p["commend"]=$f["commend"];
$p["images"]=$path;
$g->insertObject("#_product",$p);
$g->alert('添加书籍成功','user_product.php',1);
}else{
$g->alert($error,'user_product.php');
}
break;
case"delete":
if(count($_POST["cid"])>0){
foreach($_POST["cid"]as$k=>$v){
$g->setSql("deletefrom#_productwhereid='".$v."'");
$g->query();
}
echo'删除成功';
}else{
echo'请选择要删除的记录';
}
break;
case"commend":
if(count($_POST["cid"])>0){
foreach($_POST["cid"]as$k=>$v){
$g->setSql("update#_productsetcommend='YES'whereid='".$v."'");
$g->query();
}
echo'推荐成功';
}else{
echo'请选择要上传图片的记录';
}
break;
case"upload":
if(count($_POST["cid"])>0){
$upid=end($_POST["cid"]);
$g->setSql("selectfileidfrom#_productwhereid='".$upid."'");
$g->query();
$up=$g->loadRow();
echo'';
}else{
echo'请选择要推荐的记录';
}
break;
}
}
?
>
---------产品列表开始--------->
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 购书 系统 课程设计