在线书店管理系统.docx
《在线书店管理系统.docx》由会员分享,可在线阅读,更多相关《在线书店管理系统.docx(32页珍藏版)》请在冰点文库上搜索。
在线书店管理系统
1.需求分析
经过对网上各大书城及实际销售过程的考查、分析,要求本系统具有以下功能:
•统一友好的操作界面,保证系统的易用性,方便用户操作
•具备图书信息的展示功能,方便浏览者对图书信息进行浏览及比较
•规范的图书分类,方便浏览者分类查找图书
•完美的购物车功能与用户结账功能
•设置书店公告信息模块,使浏览者能够及时了解书店的动态变化,及书店销售的新书、特价书等信息
•图书销售排行功能
•订单信息查询功能、图书信息查询功能
•全面的后台管理功能,以方便管理员对书店信息进行更新与管理
1.1任务概述
•实现网上书店系统的基本功能,包括会员管理,图书出入库,书目检索,书目分类管理,购物车,订单功能,会员帐户管理,书目评价等功能。
1.2需求说明
1.2.1功能划分
(一)客户端功能
1、客户登录 客户注册
2、用户管理(修、删、查)
3、订单管理(查看订单清单、更新订单付款、出货状况删除订单)
4、添加图书分类
5、发布书店公告
6、发布新书信息
7、客户留言
(二)管理端功能
1、现有图书管理(增、修、删、查)
2、图书选购(可按分类方式查询图书,或通过关键字查询)
3、购物车功能
4、书籍查询
5、查看用户的订单情况
6、修改用户个人信息
7、客户留言(增删改)
8、书店公告(浏览)
1.2.2.功能描述
(一)前台功能
1.2.1.1.新客户注册:
客户注册成为本站会员,要求用户个人需提供身份证号码与扫描件进行实名认证,企业需提供营业执照扫描件以及法人身份证件。
1.2.1.2.书籍分类搜索:
用户可根据对书籍的分类浏览和输入关键字进行本站包含书籍的查找浏览。
1.2.1.3.热销排排行榜:
对最近书籍的(关注度和销售量)进行排行,为用户提供热门书籍的选择。
1.2.1.4.新书籍上架:
把本站最近入库的书籍显示出来方便客户知道本站书籍的更新。
1.2.1.5.实现购物车功能模块:
实时显示用户当前所购书目,可以增加或删除
1.2.1.6.订单查询功能:
客户确认购买号即生成一个唯一的订单号,客户依此号码可以查询所购书目到书情况。
1.2.1.7.在线支付功能/网上银行支付功能:
用户确认购买后实现在线支付货款或者使用网上银行支付的选择和实现。
1.2.1.8.前台页面管理:
注册会员对自己资料的修改,账户的管理和书籍收藏夹的管理,以及对于自己登陆界面风格的管理。
(二)后台管理实现功能
1.2.2.1用户注册信息管理:
网站管理人员对用户注册信息的编辑分类和管理。
1.2.2.2订单添加/删除/修改管理功能:
对于用户提交的订单进行审核,并实现对订单的添加/删除/修改管理。
1.2.2.3书籍信息管理:
a.出版社管理:
可以在此处增加或修改删除相关信息,请确保此处信息的真实性。
b.类别设置:
对书目类别进行相应的操作(增加,删除,修改)
c.分类管理:
将相关图书进行分类操作(注:
此操作可以在图书入库的时候进行选择)
1.2.2.4客户权限管理:
管理人员实现对用户的分级,不同级别的享受到的折扣不同,或者还有其他的增值服务。
高级用户需要通过支付年费,或者注册时间到达一定限额后自动成为一定级别的用户。
1.2.2.5订阅系统管理:
对用户提交的订阅信息进行审核。
1.2.2.6客户访问统计:
对网站的流量进行日,周,和季度的统计。
反馈网站的浏览量。
1.2.2.7网站统计管理:
网站数据的统计,包括会员,书籍和访问量。
是系统的数据操作核心.
1.3.数据描述
1.3.1数据流图
购书系统
客户
客户
所需书信息 书
顶层数据流图
注册登录
网上书店系统
书店新书动态
总体系统构架图
下订单
购物车
书籍查询
管理模块
访客统计
在线留言
登录网站
1.0查询书
籍
注册
2.0购书
用户
3.0查
询订单
业务数据流分析图
发书记录
F2用户管理
F3留言管理
留言管理
订单处理
用户管理
留言管理
购物车
F1图书管理
F4订单管理
管理员
1.0.1以书 1.0.3查询
名查询 结果
1.0.2多条
件查询
二层数据流图
1.3.2.数据字典
数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五部分。
以下以数据字典卡片的形式来举例说明。
1.3.2.1.数据结构
名字:
用户别名:
访问者
描述:
登陆书店管理系统进行浏览、购书等
定义:
用户=用户名+密码+邮编+地址+性别+电话+Email位置:
保存到用户表
1.3.2.2.数据项
名字:
用户ID
别名:
顺序号
描述:
唯一标识某用户访问的ID
定义:
可变字符位置:
用户表
其他数据项的定义略。
1.3.2.3数据流
数据流是数据结构在系统内传输的路径。
前面已画出的数据流图能较好的反映出数据的前后流动关系,除此外还能描述为(以“用户数据流”来说明):
数据流名:
用户数据流
说明:
“用户”数据结构在系统内的流向数据流来源:
管理员接收事物
数据流去向:
用户表处理事务
1.3.2.4.数据存储
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
对数据存储的描述通常包括(以“用户”数据结构为例):
数据存储名:
用户表编号:
用户为唯一标识存取方式:
检索与更新
2.数据库概念结构设计
从本系统中规划出的实体有:
用户信息实体、管理员信息实体、图书实体、图书分类实体、订单实体、订单列表实体。
注:
以下所有E-R图菱形代表关系,长方形代表实体。
购书
订单
用户
2.1.实体之间关系的E-R图
管理
图书
图书分类
订单列表
用户
密码
邮编
地址
2.2.用户实体的E-R图
性别
电话
Email
电话
用户
2.3.管理员和图书分类实体的E-R图
用户
密码
管理员
分类
分类
图书分类
图书
图书
分类
2.4图书实体的E-R图
价格
作者
出版
封面
图书
2.5.订单实体的E-R图
用户
订单
购买
是否
总价
是否
内容
电话
订单
用户号
购书数
图书号
2.6.订单列表实体的E-R图
订单号
订单列表
3.数据库逻辑设计
本系统数据库采用SQLServer2000数据库,系统数据库名称为bookshop,下面分别给出数据表概要说明、数据表关系概要说明及主要数据表的结构。
3.1.图书信息表
属性名
类型
长度
是否为空
说明
书名
Varchar
30
否
简称
varcharr
10
否
条形码
varchar
30
否
主键
出版社
Varchar
30
否
作者
Varchar
30
否
价格
Decamal
否
分类编号
varchar
30
否
外键
封面
Image
是
简介
varchar
200
是
3.2.会员信息表
属性名
类型
长度
是否为空
说明
会员ID
Varchar
30
否
主键
会员名称
Varchar
50
否
密码
Varchar
50
否
地址
varchat
50
否
邮政编码
Varchar
12
否
联系电话
varchar
50
是
Email地址
varchar
100
是
3.3图书订购主表
属性名
类型
长度
是否为空
说明
订货单ID
Varchar
30
否
会员ID
Varchar
30
否
外键
应付金额
Money
8
否
时间
Datetime
4
否
是否送货
smallint
2
否
3.4图书订购详细表
属性名
类型
长度
是否为空
说明
订货单ID
Varchar
30
否
外键
条形码
varchar
30
否
外键
数量
decimal
9
否
金额
Money
8
否
3.5管理员信息表
属性名
类型
长度
是否为空
说明
管理员名称
Varchar
30
否
主键
简称
Varchar
10
否
密码
Varchar
30
否
级别
varchar
30
否
3.6公告信息表
属性名
类型
长度
是否为空
说明
书名
Varchar
50
否
主键
内容
Text
16
否
发布时间
smalldatetime
4
否
3.7图书分类表
属性名
类型
长度
是否为空
说明
分类编号
Varchar
30
否
主键
分类名
varchar
30
否
4.数据库物理设计
4.1数据库的数据文件的分布结构。
主要是确定数据库的存储空间的分配、数据文件的存放路径等。
4.2确定索引结构。
一般性原则是,对于作为连接查询的连接条件的属性以及作为选择条件的属性,通常应该创建索引。
此外,索引并不是越多越好,要适当。
5.数据库功能设计
5.1.熟悉并掌握数据库系统软件、数据库管理、查询分析器的使用
5.2数据表结构的建立、修改
createtableDingdan
( 订单号char(4)primarykey,
客户号char(4)notnull,
书名char(20),
购书数量char(10),
价格float,
地址char(40)notnull,邮编char(8)notnull,简介char(100),
是否发售char
(2)notnull,
constraintc1check(是否发售in('是','否')),
订单日期char(20),
);
createtable订单记录
(订单号char(4),客户号char(4),书名char(20),
购书数量char(10),
地址char(40),
邮编char(8),
订单日期char(20),
);
createtable删除记录
(订单号char(4),客户号char(4),书名char(20),
购书数量char(10),
地址char(40),
邮编char(8),
订单日期char(20),
);
createtablebook(
条形码char(30)primarykey,
书名varchar(30),出版社varchar(30),作者varchar(50),价格real,
剩余数量int,
分类编号varchar(30),
封面imagenotnull,
简介varchar(200)notnull,
);
createtable图书分类(
分类编号varchar(30) notnull,
分类名 varchar(30) notnull,
);
Createtable管理员信息表(
管理员名称varchar(30) primarykey notnull,
密码varchar(30)notnull,);
Createtable会员信息表(
会员IDvarchar(30)primarykeynotnull,
会员名称varchar(50)notnull,
密码varchar(50)notnull,
地址varchar(50)notnull,
邮政编码varchar(12)notnull,
联系电话varchar(50),Email地址varchar(100));
5.3.数据的添加、修改、删除
insertinto
Dingdan(订单号,客户号,书名,购书数量,价格,地址,邮编,简介,是否发售,订单日期)values('01','A1','C++','1',44,'1000','10000','你好','是','0101');
delete
fromDingdan
where是否发售='是';
5.4.单表查询、多表综合查询
Select订单号,客户号,书名,购书数量,价格,地址,邮编,简介,订单日期
FromDingdan
Where是否发售='是'and 价格>30
Select*
From管理员信息表
Select*
From会员信息表
5.5.视图、存储过程、触发器的使用
createviewIS_订单as
select 订单号,客户号,书名,购书数量,价格,地址,邮编,订单日期
fromDingdan
where是否发售='是'
CREATETRIGGER A2ONDingdan
FORdeleteAS
declare@hhchar(4),@iichar(4),
@jjchar(4),@kkchar(4),@llchar(4),@mmchar(4),@nnchar(4)
select@hh=订单号fromdeletedselect@ii=客户号fromdeletedselect@jj=书名fromdeletedselect@kk=购书数量fromdeletedselect@ll=地址fromdeletedselect@mm=邮编fromdeletedselect@nn=订单日期fromdeletedinsert
into删除记录(订单号,客户号,书名,购书数量,地址,邮编,订单日期)values(@hh,@ii,@jj,@kk,@ll,@mm,@nn)
CREATETRIGGER A1ONDingdanFORINSERT
AS
declare@ffchar(4),@ggchar(4),
@ddchar(4),@aachar(4),@bbchar(4),@ccchar(4),@eechar(4)
select@ff=订单号frominserted
select@gg=客户号frominsertedselect@aa=书名frominsertedselect@bb=购书数量frominsertedselect@cc=地址frominsertedselect@ee=邮编frominsertedselect@dd=订单日期frominsertedinsert
into订单记录(订单号,客户号,书名,购书数量,地址,邮编,订单日期)values(@ff,@gg,@aa,@bb,@cc,@ee,@dd)
5.6.系统功能设计及其对应的数据库操作功能的实现
5.6.1.系统总体功能
1.用户可以方便地查看图书信息.
2.用户可以反馈自己的满意和不满意意见
3.管理员可以方便地添加、删除、修改图书
4.管理员可以方便地查看订单,可以方便地进行发货操作和记录缺货的处理情况
5.管理员可以方便地查看用户反馈信息和记录反馈信息的处理情况
6.管理员可以方便地增加、删除、修改各种不同的用户
5.6.2.数据库操作功能的实现
5.6.2.1.用户主页面
其中包含了图书分类模块、用户登录模块、图书查询模块、首页公告信息模块等。
5.6.2.2.管理员页面
该页面集成了图书、订单管理,用户管理,图书分类管理,网站信息管理等管理功能模块。
5.6.2.3.功能实现分工
分工安排:
1.管理员信息模块和用户信息模块负责人:
皮建建
2.图书信息模块和图书分类模块 负责人:
丁凯
3.订单详细模块和订单列表模块 负责人:
杨华
4.图书查询模块和公告信息模块 负责人:
程英
6.数据库功能的详细设计实现
6.1.管理员信息模块和用户信息模块
6.1.1表的建立
6.1.1.1管理员信息表建立
Createtable管理员信息表(
管理员名称varchar(30) primarykey notnull,
密码varchar(30)notnull,
);
6.1.1.2会员员信息表建立
Createtable会员信息表(
会员IDvarchar(30)primarykeynotnull,
会员名称varchar(50)notnull,
密码varchar(50)notnull,
地址varchar(50)notnull,
邮政编码varchar(12)notnull,
联系电话varchar(50),Email地址varchar(100));
6.1.2表的修改
6.1.2.1管理员信息表的修改
//添加新列
altertable管理员信息表
add简称varchar(10)
//删除列
altertable管理员信息表
dropcolumn简称
//修改列
altertable管理员信息表
altercolumn密码varchar(20)
6.1.2.2会员信息表的修改
//删除列
altertable会员信息表
dropcolumnEmail地址
//添加新列
altertable会员信息表
addEmail地址varchar(100)
//修改列
altertable会员信息表
altercolumn Email地址varchar(80)
6.1.3数据的添加
l采用数字数据存储时,最左边的"0"将被忽略,采用字符型则不会
l数据类型要一致,数据长度不要超出所给的范围
6.1.3.1管理员信息表数据的添加
//整行的插入
insertinto管理员信息表(管理员名称,密码)values('王五','016325')
insertinto管理员信息表(管理员名称,密码)values('刘于','126543')
insertinto管理员信息表(管理员名称,密码)values('张小五','lijian')
6.1.3.2会员信息表数据的添加
6.1.3.2.1.整行的插入
insertinto会员信息表(会员ID,会员名称,密码,地址,邮政编码,联系电话,Email地址)values('06062201','张三','0606221','江西萍乡',337024,'07993625532','54321235@')
insertinto会员信息表(会员ID,会员名称,密码,地址,邮政编码,联系电话,Email地址)values('06062202','王二','0606222','江西南昌',330046,'07913902522','53226549@')
6.1.3.2.2NULL值的插入(注意哪些字段约束为空)
insertinto会员信息表(会员ID,会员名称,密码,地址,邮政编码,联系电话,Email地址)values('06062202','李四','0606222','江西萍乡',337024,'null','null')
6.1.4数据的修改6.1.4.1.更新单列数据
update会员信息表
set 邮政编码='331600'where 会员ID='06062201'
6.1.4.2多列数据的更新
update会员信息表
set 邮政编码='331600',地址='江西吉安'
6.1.4.3.通过数据更新删除列中的数据
update会员信息表
set 联系电话=nullwhere 会员ID='06062201'
6.1.5删除表中的数据
6.1.5.1删除单行数据
deletefrom会员信息表
where 会员ID='06062201'
6.1.5.2删除多行数据
deletefrom会员信息表where 会员ID='6062201'and 邮政编码='331600'
6.1.5.3删除所有行数据
deletefrom会员信息表或
truncatetable会员信息表
6.1.6表查询
6.1.6.1单列查询
select管理员名称
from管理员信息表
6.1.6.2多列查询
select会员ID,会员名称,邮政编码,Email地址from会员信息表
6.1.6.3单列排序
select会员ID,会员名称,邮政编码,Email地址from会员信息表
orderby会员名称
6.1.6.4多列排序
select会员ID,会员名称,邮政编码,Email地址from会员信息表
orderby会员ID,会员名称
6.1.6.5采用序号进行多列排序
select会员ID,会员名称,邮政编码,Email地址from会员信息表
orderby2,3
6.1.6.6where子句单条件查询
select会员ID,会员名称,邮政编码,Email地址from会员信息表
where邮政编码='330046'orderby 会员ID
6.1.6.7采用聚合函数查询
//统计会员信息selectcount(*)astotalfrom会员信息表
6.1.6.8通过索引查询
select*
from会员信息表
with(index会员ID_index