数据库设计--《网上书店系统》
更新时间:2024-06-27 08:27:01 阅读量: 综合文库 文档下载
- 网上书店SQL数据库设计推荐度:
- 相关推荐
1 系统需求分析
1.1 系统基本功能描述
网上书店系统是依据网上书店能够在线出售图书和管理需求而进行设计的,目的是实现在线接受客户订单、书店信息管理的功能。
需要在线购买图书的客户能够通过网上书店系统查询所需要的图书是否有售并能够查询有售图书的基本信息(比如图书名称、作者、出版社等)。如果客户查询到所需并且有售的图书,能够在线下达订单,然后提交给数据库,并且客户能够查询自己的订单的处理情况。同时,客户应该能够维护自己的信息(比如修改自己的收货地址、联系方式等)。
网上书店系统应该至少拥有一个管理员。管理员能够维护在售图书的基本信息(比如图书信息的增加、删除、修改等),并且能够对图书进行分类管理。同时,管理员能够维护客户的信息,能够审核客户提交的订单以确认或删除订单。
1.2 系统数据流图
通过对系统需求进行分析,我们尅有确定系统中有两类用户:管理员和客户。 各类用户的具体描述如下: (1) 管理员
描述:管理员负责后台管理。包括维护(增加、删除、修改)图书信息,对 图书进行分类管理;维护客户信息(增加和删除客户账号);审核订单并确认合法订单或删除非法订单。 (2) 客户
描述:客户可以查询有售图书的基本信息;可以维护自己的信息;可以进行网上订书;可以查询订单的处理情况。
1.2.1 数据流分析
根据分析,我们可以得到系统的数据流图。 (1)网上书店系统顶层数据流图如图1-1所示。
1
1.2.2 数据字典
根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。下面 列出部分数据字典内容。
1.2.2.1 数据项
(1)管理员
① {管理员编号,每位管理员在系统中的唯一编号也是管理员登陆的账号名,char(7)}
② {管理员姓名,char(10)}
③ {管理员登陆密码,char(10)} (2)客户
① {客户编号,每位客户在系统中的唯一编号,char(7)} ② {客户姓名,char(10)}
③ {地址编号,客户有多个地址时每个地址的编号,char(7)}
④ {地址,客户收货地址中某个具体地址,varchar(20)}
⑤ {联系方式,客户的电话号码,char(15)} ⑥ {账户余额,客户购书账户的余额,float(7)} ⑦ {登陆密码,char(10)}
(3)订单
① {订单号,唯一标识一张订单的编号,char(7)}
② {订单日期,生成订单的时间,datetime,取值为提交订单的时间} ③ {收货人姓名,查收图书的人的姓名,char(10),同客户姓名} ④ {收货人联系方式,收货人的电话号码,char(15),同联系方式}
⑤ {发货地址,图书送达的目的地,varchar(100),是客户收货地址中的一
个}
⑥ {管理员编号,审核该订单的管理员的编号,char(7),同管理员编号} (4)订单细则
① {细则号,唯一标识一个订单细则,char(7)}
② {图书编号,订单所包含的图书的编号,char(7),同图书信息中的图书
编号}
③ {订购数量,购买同本图书的数量,smallint,取值不大于此本图书的库
存余量}
④ {发货状况,已订购图书的发货情况,varchar(100)} (5)图书信息
① {图书编号,唯一标识一款图书的编号,char(7)} ② {图书名,图书的题名,varchar(20)} ③ {作者,图书的作者,char(10)}
④ {出版社,图书的出版方,varchar(20)} ⑤ {图书类别,图书的分类,varchar(20)}
⑥ {库存余量,当前书店此款图书的剩余量,smallint,当前库存量=上次
库存量-售出数量}
⑦ {图书价格,图书的售价,float(5),图书价格大于零}
2
1.2.2.2 数据结构
(1){图书信息,每本图书的具体信息,组成:{图书编号,图书名,作者,出版
社,图书类别,库存余量,图书价格} }
(2){管理员,管理员的基本信息,组成:{管理员编号,管理员姓名} }
(3){客户,客户的基本信息,组成:{客户编号,客户姓名,收货地址,账户余
额,联系方式} }
(4){收货地址,客户的收货地址,组成:{地址编号,地址} }
(5){订单,订单的信息,组成:{订单号,订单日期,订单细则,收货人姓名,
发货地址,管理员编号,收货人联系方式} }
(6){定单细则,订单的细节内容,组成:{细则号,图书编号,订购数量,发货
状况} }
3
2 系统设计
2.1 数据库设计
2.1.1 概念结构设计
1.系统涉及到的实体
(1)管理员{管理员编号,管理员姓名}
(2)客户{客户编号,客户姓名,收货地址,账户余额,联系方式}
(3)图书{图书编号,图书名,作者,出版社,图书类别,库存余量,图书
价格}
(4)订单{订单号,订单日期,订单细则,收货人姓名,发货地址,管理员
编号,收货人联系方式}
(5)订单细则{细则号,图书编号,订购数量,发货状况} (6)收货地址{地址编号,地址}
2. 系统E-R模型设计 A. 分E-R 模型设计
(1)每个客户可以拥有多个收货地址,这些地址只能被这个客户使用。
因此,客户与收货地址之间是一对多关系。E-R图如下:
(2) 一个客户可以下达多个定单,一个订单只能属于一个客户。因此,
客户与订单是一对多关系。E-R图如下:
4
(3)一份订单里可以包含若干个订单细则。因此,订单与订单细则之间是
一对多关系。E-R图如下:
(4) 一个管理员可以审核多份定单,但是一份订单只能被一个管理员审核。
因此,管理员与订单是一对多关系。E-R图如下:
(5) 一个订单细则可以包含多本图书,一本图书也可以包含在多份订单细
5
则中。因此,图书与订单细则之间是多对多关系。E-R图如下:
B. 系统的总E-R图
合并以上E-R图即得系统总E-R图如下:
2.1.2 逻辑结构设计
根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统的数据库。根
据需要,设计了6个数据表,2个视图。如下所示:
? 管理员信息表:该表记录了管理员的相关信息,包括管理员编号,登陆
6
密码管理员姓名。
? 客户信息表:该表记录了客户的相关信息,包括客户编号,登录密码,
客户姓名,联系方式,账户余额。
? 收货地址表:该表记录了客户的收货地址信息,包括地址编号,客户编
号,地址。
? 订单表:该表记录了订单的基本信息,包括订单号,客户编号,订单日
期,收货人姓名,发货地址,收货人联系方式,管理员编号。
? 订单细则表:该表记录了订单的细则信息,包括细则号,订单号,图书
编号,订购数量,发货状况。
? 图书信息表:该表记录了图书的基本信息,包括图书编号,图书名,作
者,出版社,图书类别,库存余量,图书价格。
以上是在数据库中的基本表。在具体的查询过程中,如果全部直接从基 本表查询,则要建立多重的联合(内联)查询,这样用起来很不方便,也容易出错;同时影响系统效率。因此建立n个视图,方便查询。
(1)客户购书信息视图:包括图书名,作者,出版社,订购数量,订单日期,发货状况,账户余额。
(2)管理员订单审核视图:包括订单号,客户号,图书编号,订购数量。
根据上面的逻辑结构设计,设计相应的表结构如下所示。 1.管理员信息表(Ginfo)
该表记录了管理员的相关信息,包括管理员编号,管理员姓名。其结构如表2-1所示:
表2-1 Ginfo 字段 说明 类型(长度) 备注 Gid char(7) 管理员编号 主键,不为空 Gcode char(10) 登录密码 不为空 Gname char(10) 管理员姓名 不为空 2.客户信息表(Kinfo) 该表记录了客户的相关信息,包括客户编号,客户姓名,联系方式,账
户余额。其结构如表2-2所示:
表2-2 Kinfo 字段 说明 类型(长度) 备注 Kid char(7) 客户编号 主键,不为空 Kcode char(10) 登录密码 不为空 Kname char(10) 客户姓名 不为空 Kcontact char(15) 联系方式 不为空 Ksave float(7) 账户余额 不小于零 3.收货地址表(ADinfo) 该表记录了客户的收货地址信息,包括地址编号,客户编号,地址。其
结构如表2-3所示:
7
字段 ADid 主键,外键,不为空 Kid Add 不为空 4.订单表(Dinfo)
该表记录了订单的基本信息,包括订单号,客户编号,订单日期,收货人姓名,发货地址,收货人联系方式,管理员编号。其结构如表2-4所示:
表2-4 Dinfo 字段 说明 类型(长度) 备注 Did char(7) 订单号 主键,不为空 主键,外键,不为空 Kid char(7) 客户编号 Dname char(10) 收货人姓名 不为空 Dadd varchar(100) 发货地址 外键,不为空 Dcontact char(15) 收货人联系方式 外键,不为空 Gid char(7) 管理员编号 外键,不为空 Ddate datetime 订单日期 不为空 5.订单细则表(Xinfo) 该表记录了订单的细则信息,包括细则号,订单号,图书编号,订购数量,发货状况。其结构如表2-5所示:
表2-5 Xinfo 字段 说明 类型(长度) 备注 Xid char(7) 细则号 主键,不为空 主键,外键,不为空 Did char(7) 订单号 Tid char(7) 图书编号 外键,不为空 Xnum smallint 订购数量 大于零 Xdetail varchar(100) 发货状况 默认未发货 6.图书信息表(Tinfo) 该表记录了图书的基本信息,包括图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格。其结构如表2-6所示:
表 2-6 Tinfo 字段 说明 类型(长度) 备注 Tid char(7) 图书编号 主键,不为空 Tname varchar(20) 图书名 不为空 Twriter char(10) 作者 不为空 Tpub varchar(20) 出版社 不为空 Tnum smallint 库存余量 不小于零,不为空 Tprice float(5) 图书价格 不小于零,不为空 Tsort varchar(20) 图书类别 不为空
8
表2-3 ADinfo 说明 类型(长度) char(7) 地址编号 char(7) 客户编号 varchar(100) 地址 备注 主键,不为空
2.2 系统物理设计
1.存储过程
(1)订单处理系统是整个网上书店系统的核心。它的功能是检查客户欲提交的订单细则数据的合法性。主要包括:检查图书的库存余量是否为零、检查客户的账户余额是否足够支付购书款。检查订单细则数据流程图如图3-1所示:
图3-1 检查订单数据流程图
9
存储过程检查接收到的订单细则数据是否产生冲突(冲突产生的原因是:订购数量大于图书的库存余量、购书的金额大于账户余额),如果没有冲突产生,则将数据插入订单细则表(Xinfo),否则返回冲突提示。其代码如下所示:
CREATE PROCEDURE Xdate_check @kid char(7), @tid char(7), @xnum smallint AS
IF((select tnum from tinfo where tid=@tid)-@xnum>=0) BEGIN
IF((select ksave from kinfo where kid=@kid)
-(select tprice*@xnum from tinfo where tid=@tid)>=0) BEGIN
insert into xinfo
values('','',@tid,@xnum,'未发货')/*订单号及细则号由系统自动生成*/ print'订单细则提交成功' END ELSE BEGIN
print'账户余额不足!' END ELSE
BEGIN
print'库存量不足!' END END
(2)新加管理员账户及删除管理员账户的存储过程。
/*新增管理员信息*/
CREATE PROCEDURE add_G @gid char(7), @gcode char(10), @gname char(10) AS
10
insert into Ginfo
values(@gid,@gcode,@gname) /*删除管理员信息*/
CREATE PROCEDURE dele_G @gid char(7), @gcode char(10) AS
IF (exists(select * from ginfo where gid=@gid and gcode=@gcode))
delete from Ginfo where Gid=@gid
(3)新增用户信息及删除用户信息。
/*新增用户信息*/
CREATE PROCEDURE add_K @kid char(7), @kcode char(10), @kname char(10), @kcontact char(15) AS
insert into Ginfo
values(@kid,@kcode,@kname,@kcontact,'','')
2.触发器
当每条订单细则提交后,图书的库存量和用户的账户余额应当相应的减少。
CREATE TRIGGER tri01 on Xinfo for insert AS
BEGIN
update Tinfo
set tnum=tnum-(select xnum from inserted) where tid=(select tid from inserted) update Kinfo
set ksave=ksave-(select tprice*(select
xnum from inserted) from Tinfo where tid=(select tid from inserted))
where kid=(select kid from Dinfo where Did=
(select Did from inserted))
END
11
小结
由于设计MIS经验不足,时间有限,我虽然在有限时间里顺利的完成了网上书店系统的分析、设计和调试工作,但是本系统仍需进一步扩充和完善,使之更符合实际的应用。如在订单处理功能上应当增加发票处理功能,在图书管理上应当增加图书的仓储管理功能等。我充分体会到理论知识的重要性,但更加体会到实践的重要性。只有通过实践,我们才能发现并解决问题,才能真正掌握一项技术。我会在将来的软件设计、开发过程中进一步学习,不断提高自己的专业技能。
12
正在阅读:
数据库设计--《网上书店系统》06-27
煤炭建设工程质量技术资料管理评定与评级办法 安装标准表格(1)04-09
2015心理健康考试84分11-13
企业战略管理随堂练习题04-29
八年级物理全册 3.3 超声与次声课时作业(新版)沪科版01-16
中专一年级烹饪班中式烹调技艺试题09-17
美国退出qe是什么意思?02-13
2010gct真题答案附数学答案解析10-09
计量修正题库03-04
中考满分作文佳句大全01-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 网上书店
- 数据库
- 设计
- 系统
- 上饶市余干县城市排水改造工程施工组织设计
- 第一章整式的运算单元测试题
- 江苏省镇江市2015-2016学年八年级上学期期末考试数学试题带答案
- 2015新人教版七年级数学上册期末测试题及答案
- 04-07年安全管理考试
- 陕西水利水电定额学习笔记
- 煤矿人力资源部安全生产责任制
- 电机起动过程动态检测系统
- 一年级试卷
- 中小企业2011上半年工商部门要求的经营工作总结范文(1500字)
- 2012考研报名问题汇总
- 液压传动试题库及答案
- 中小企业服务平台 建设方案项目 可行性报告
- 2009年水利工程造价工程师资格考试复习题集(经济)
- 第1讲--板形的基本理论
- 2006年真题答案及解析
- 2014-2015年度《高频电子线路期末试卷》50
- 京博控股资料
- 小型天然气公司销售部职责
- 2016年下半年广东省抹灰工安全生产知识教育考试试卷