网上书店数据库设计.docx
《网上书店数据库设计.docx》由会员分享,可在线阅读,更多相关《网上书店数据库设计.docx(33页珍藏版)》请在冰豆网上搜索。
网上书店数据库设计
数据库系统概论
课程设计
设计名称:
网上书店系统数据库设计
网上书店系统数据库设计
一、需求分析
在需求分析阶段,主要分析了用户的各种需求,在此基础上确定了新系统的功能,具体内容包括编写目的、开发背景、相关定义、开发目标等部分。
1.1编写目的
随着信息技术的发展与普及,网络竞争越发的激烈、残酷,传统的营销方式在现今的社会竞争中已经力不从心,尤其是书本的营销。
客户作为市场的最大资源,已经成为了市场营销的核心,谁争取到了最多的客户,谁就取得了最大的成功,对客户的把握将最终决定企业的命运。
书籍网络营销于一种新的营销模式出现在当前人们的生活中,而
随着电子商务的发展,人们已经更多地关注了网上购物,这就无形中对网上书店的管理提出了更高的要求,需要其现代化、系统化、规范化、高效化。
如何更加完善自身的管理,扩大网上书城的知名度,提高经济效益,增加客户量,成为网上书店管理迫切需要解决的问题。
网上书店管理的特殊性在于书籍信息量大、信息更新快、客户信息量大、客户反馈信息量大、信息间关联多、涉及的各层管理人员复杂.同时其分工、权限又各不相同,如果所有的工作都按部就班地手工完成,将在很大程度上浪费劳动力和时间,降低工作效率。
因此通过引进计算机管理系统,把大量的工作微机化管理,这样就可以实现高效、安全、合理的管理模式,本系统就是基于这样一个目的来编写的。
1.2背景
数据库名称:
OBMS
软件系统名称:
网上书店管理系统(OnlineBookstoreManagementSystem,简称OBMS)。
软件系统用户:
一般中小型网上书店。
软件及数据安装中心:
湖北汽车工业学院文管楼实验室。
1.3可行性分析
1.3.1经济可行性
随着信息技术的发展与普及,网络竞争越发的激烈、残酷,传统的营销方式在现今的社会竞争中已经力不从心,尤其是书本的营销。
客户作为市场的最大资源,已经成为了市场营销的核心,谁争取到了最多的客户,谁就取得了最大的成功,对客户的把握将最终决定企业的命运,现在做电子商务的网站很多,网络书店就只有那么几个屈指可数的知名网站,像是“当当网上书城”、“卓越网”等
正是由于网上书店的数量少,而且不规范,以及在网络书店的客户量上存在很大的发展空间,为满足广大读者朋友的需求,网上书店的系统的建立将是未来一笔可观的财富。
1.3.2技术可行性
网络管理日益趋向于系统化、完整化、人性化。
在网络书店的数据库设计上,我们运用到SQL2000编程,具有完善的数据库设计思想和操作能力。
1.4用户分析
随着网络的普及,越来越多的读者都习惯在网上看书、买书。
在网络上用户可以找到自己想要的书籍,解决了用户区域性的问题,为广大读者提供一个平台能够找到珍贵的书籍。
网上书店数据库系统是针对广大的读者,在线的用户量极具的增加,网上读书的客户量也在扩大,例如“当当”网上书城、“卓越”网。
我们在整个书店的管理上将网络书籍进行分类,包括出版社管理、用户管理、订单管理、销售管理、物流管理等,以便更好的熟悉整个网络书店的后台数据库的运行环境。
1.5网上书店系统的特点
简单性:
在实现平台的功能的同时,尽量让平台操作简单易懂。
针对性:
平台设计使网上书店系统我们的数据库设计主要是后台管理,所以具有很强的针对实用性:
我们在数据库设计的时候,将用户、管理员、书籍等基本信息在数据库中存储,具有良好的实用性。
1.6定义
所有的表名的命名规则:
所有的表名用具有实际含义的英文单词组成,本系统共有12张表:
books:
书籍信息表,记录书籍信息
stock:
书籍库存表,记录书籍库存信息
booktype:
书籍大类别表,记录书籍总体分类
booktype2:
书籍小类别表,记录书籍总分类下属的小分类
publish:
出版社信息表,记录出版社信息
users:
用户表,记录用户信息
Administrators:
管理员表,记录管理员信息
leaveWords:
用户留言表,记录用户留言信息
orders:
订单表,记录订单信息
sales:
销售单表,记录销售单信息
shipped:
运单表,记录运单信息
waybill:
发货表,记录发货单信息
1.7系统功能性需求
1.7.1系统结构
根据网上书店的项目功能需求及对网上书店的调研,该系统的系统总体结构如下图所示。
网上书店的业务流程图
1.7.2功能性需求分类
功能类别
子功能
后台
管理
模块
书籍信息管理
管理书籍相关信息
书籍类别管理
对书籍的类别进行初始化,并进行增删改查等操作
订单管理
查询用户订单,并确认,生成销售单
销售管理
对销售订单进行确认,并进行书籍的销售出库
留言管理
管理员查看留言
运单管理
由第三方物流公司对出库的书籍进行配送
前台
管理
模块
用户信息管理
用于用户的注册、修改信息操作
搜索书籍
提供以不同方式进行搜索书籍的功能
订购书籍
提供用户订购书籍的功能
留言功能
用于用户对所购买书籍提出反馈意见,管理员可查看留言
首页显示书籍
用于在首页上现实特价图书和最新出版书籍的信息
1.8数据字典
管理员(管理员编号、用户名、管理员姓名、管理员密码、管理员邮箱)
用户(用户名、密码、电话、邮箱、家庭住址、真实姓名、邮政编号)
用户留言(留言编号、用户名、主题、提交时间、留言内容、回复状态)
书籍(书籍编号、书籍名称、ISBN、作者、出版社编号、版次、出版日期、内容简介、书籍小类别编号)
库存(ISBN、库存数量、原始价格、折扣店、登记日期)
书籍大类别(大类别编号、大类别名称)
书籍小类别(小类别编号、小类别名称、所属大类别)
出版社(出版社编号、出版社名称、出版社电话、出版社地址)
订单(订单编号、用户名、订购时间、书籍编号、订购数量、状态)
销售单(销售单编号、订单编号、创建日期、创建人、状态)
发货单(发货单编号、销售单编号、发货日期、发货人)
运单(运单编号、发货单编号、快递公司名称、送货人姓名、送货人电话)
1.9实体间的联系
通过以上分析可知,实体之间的联系有:
管理员与用户之间是一对多关系(1:
n)
用户与用户留言之间是一对多关系(1:
n)
出版社与书籍之间是一对多关系(1:
n)
书籍与库存十件事一对一关系(1:
1)
书籍小类别与书籍之间是一对多关系(1:
n)
书籍大类别与书籍小类别之间是一对多关系(1:
n)
用户与订单之间是一对多关系(1:
n)
订单与销售单之间是一对一关系(1:
1)
销售单与发货单之间是一对一关系(1:
1)
发货单与运单之间是一对一关系(1:
1)
二、概念结构设计
三、逻辑结构设计
表一书籍信息表books
字段名
字段描述
类型
可否为空
备注
isbn
ISBN号
字符串长度20
可
Book_id
书籍编号
字符串长度6
否
主键
title
书籍名称
字符串长度80
否
author
作者
字符串长度50
否
Pub_id
出版社编号
整型
可
Version
版次
字符串长度20
可
Publishdate
出版日期
日期/时间
可
introduction
内容简介
字符串长度2000
可
type
书籍小类别编号
整型
否
外键
表二书籍库存表stock
字段名
字段描述
类型
可否为空
备注
isbn
ISBN号
字符串长度20
否
主键
stock_qty
库存数量
字符串长度10
可
price
原始价格
货币
否
discount
折扣点
小数类型
可
logdate
登记日期
日期/时间
可
表三书籍大类别表booktype
字段名
字段描述
类型
可否为空
备注
Bigtype_id
大类别编号
整型
否
主键,标识列
Bigtype_name
大类别名称
字符串长度50
否
唯一
表四书籍小类别表booktype2
字段名
字段描述
类型
可否为空
备注
Smalltype_id
小类别编号
整型
否
主键,标识列
Smalltype_name
小类别名称
字符串长度50
否
唯一
Bigtype_id
所属大类别编号
整型
否
表五出版社信息表publish
字段名
字段描述
类型
可否为空
备注
Pub_id
出版社编号
整型
否
主键,标识列
Pub_name
出版社名称
字符串长度50
否
唯一
Pub_phone
出版社电话
字符串长度15
否
Pub_add
出版社地址
字符串长度50
否
表六用户表users
字段名
字段描述
类型
可否为空
备注
Username
用户名
字符串长度20
否
主键
Password
密码
字符串长度50
否
Phone
电话
字符串长度15
可
E-mall
电子邮箱
字符串长度30
可
Address
家庭住址
字符串长度100
否
True_name
真实姓名
字符串长度20
否
Postcode
邮政编号
字符串长度6
否
表七管理员表Administrators
字段名
字段描述
类型
可否为空
备注
Administrator_id
管理员编号
整型
否
主键
Username
用户名
字符串长度20
否
外键
Administrator_name
管理员姓名
字符串长度20
否
Administrator_password
管理员密码
字符串长度50
否
Administrator_e-mall
管理员邮箱
字符串长度30
可
表八用户留言表leaveWords
字段名
字段描述
类型
可否为空
备注
Lword_id
留言编号
整型
否
主键,标识列
Username
用户名
字符串长度6
否
Subject
主题
字符串长度6
否
Submit_date
提交时间
日期型
可
Lword_texe
留言内容
字符串长度4000
可
Re_status
回复状态
字符串长度10
可
0-“待回复”
1-“已回复”
表九订单表orders
字段名
字段描述
类型
可否为空
备注
Order_id
订单编号
整型
否
主键,标识列
username
用户名
字符串长度20
否
Order_date
订购时间
日期型
可
默认系统时间
Book_id
书籍编号
字符串长度6
否
quantity
订购数量
整型
否
大于0
status
状态
位类型长度1
可
0-“未处理”
1-“已处理”
表十销售单表sales
字段名
字段描述
类型
可否为空
备注
Sale_id
销售单编号
整型
否
主键,标识列
Order_id
订单编号
整型
否
外键
Sale_date
创建日期
日期型
可
默认系统时间
Saler
创建人
字符串长度20
否
Sale_status
状态
位类型长度1
可
0-“未发货”
1-“已发货”
表十一发货表shipped
字段名
字段描述
类型
可否为空
备注
Ship_id
发货单编号
整型
否
主键,标识列
Sale_id
销售单编号
整型
否
外键
Ship_date
发货日期
日期型
可
默认系统时间
Ship_man
发货人
字符串长度20
否
表十二运单表waybill
字段名
字段描述
类型
可否为空
备注
Waywill_no
运单编号
整型
否
主键,标识列
Ship_id
发货单编号
整型
否
外键
express_company
快递公司名称
字符串长度20
否
Delivery_man
送货人姓名
字符串长度20
可
Delivery-man_phone
送货人电话
字符串长度15
可
四、系统实现
4.1表的建立
书籍信息表books的建立
书籍库存表stock的建立
书籍大类别表booktype的建立
书籍小类别表booktype2的建立
出版社信息表publish的建立
用户表users的建立
管理员表Administrators的建立
订单表orders的建立
用户留言表leaveWords的建立
销售单表sales的建立
发货表shipped的建立
运单表waybill的建立
4.2数据库关系图
4.3表的信息
4.4视图
创建视图:
视图的创建:
在users表中建立username为ran520611视图
V1中视图
在books表中建立视图如下:
建立如下视图:
视图中包含每个用户的留言编号
视图查询:
建立视图v6_books并查询视图中book_id、title、auther
查询结果如下:
建立并查询视图:
向视图中插入新的数据:
插入后在users表中:
删除视图中的记录:
4.5索引
以上是对users表建立的索引
4.6触发器
对于在网上书店系统数据库,表users的username列与表administrators的usersname满足下列参照完整性规则。
A.向users表插入或修改一记录时,通过触发器检查记录的users值在administrators表中是否存在,若不存在,则取消插入或修改操作;
B.修改administrators表的usersname字段值时,该字段在users表中的对应值也做相应修改。
C.删除administrators表中一记录的同时删除该记录administrators字段值在users表中对应的记录。
(1)向users表插入或修改一记录时,通过触发器检查记录的username值在administrators表中是否存在,若不存在,则取消插入或修改操作。
(2)修改administrators表的username字段值时,该字段在users表中的对应值也做相应修改。
对administrators表建立更新触发器
IF(COLUMNS_UPDATED())
测试是否插入或更新了提及的列,仅用于INSERT或UPDATE触发器中。
COLUMNS_UPDATED返回varbinary位模式,表示插入或更新了表中的哪些列。
COLUMNS_UPDATED函数以从左到右的顺序返回位,最左边的位表示表中的第一列;向右的下一位表示第二列,依此类推。
在INSERT操作中COLUMNS_UPDATED将对所有列返回TRUE值,因为这些列插入了显式值或隐性(NULL)值。
(3)删除CLASS表中一记录的同时删除该记录CLASS_ID字段值在STUDENT表中对应的记录。
对administrators表建立删除触发器
4.7存储过程
创建添加记录的存储过程
创建修改记录的存储过程
创建删除记录的存储过程
调用三个存储过程:
存储过程的调用
4.8主要代码
触发器的应用
createtriggeradministratorsdeleteondbo.administrators
fordelete
as
begin
deletefromusers
whereusername=(selectusernamefromdeleted)
end
go
users表的存储过程usersadd
createprocedureusersadd
(@usernamevarchar(20),@passwordvarchar(50),@phonevarchar(15),@e_mallvarchar
(30),@addressvarchar(100),@turenamevarchar(20),@postcodevarchar(6))
as
begin
insertintousers
values(@username,@password,@phone,@e_mall,@address,@turename,@postcode)
end
return
go
修改users表的存储过程usersupdate
createprocedureusersupdate
(@useridvarchar(20),@usernamevarchar(20),@passwordvarchar(50),
@phonevarchar(15),@e_mallvarchar
(30),@addressvarchar(100),@turenamevarchar(20),@postcodevarchar(6))
as
begin
updateusers
setusername=@username,password=@password,phone=@phone,e_mall=@e_mall,
address=@address,
turename=@turename,postcode=@postcode
whereusername=@userid
end
return
go
删除users表的删除过程usersdelete
createprocedureusersdelete
(@usernamevarchar(20))
as
begin
deletefromusers
whereusername=@username
end
return
go
五、课程设计总结
这次课程设计我们花了一个星期的时间来完成,感觉时间过的很快。
在大家的共同合作下,终于完成了这次课设。
在完成过程中,我主要工作是完成概念结构设计。
在设计之前我们共同讨论了一下网上书店的整个流程,主要的工作步骤,设计ER图。
完成的不是那么的完美。
但对于数据库设计的整个流程有了了解。
同时我也明白了在IT行业中分工合作的重要性。
课程设计的完成离不开队友的帮助。