目录
1 . 系统需求分析 (2)
1.1 系统基本功能描述 (2)
1.2 系统数据流图 (2)
1.2.1 数据流分析 (2)
1.2.2 数据字典 (3)
1.2.2.1 数据项 (3)
1.2.2.2 数据结构 (4)
2 . 系统设计 (5)
2.1 数据库设计 (5)
2.1.1 概念结构设计 (5)
2.1.2 逻辑结构设计 (7)
2.2 系统物理设计 (10)
1
1 系统需求分析
1.1 系统基本功能描述
网上书店系统是依据网上书店能够在线出售图书和管理需求而进行设计的,目的是实现在线接受客户订单、书店信息管理的功能。
需要在线购买图书的客户能够通过网上书店系统查询所需要的图书是否有售并能够查询有售图书的基本信息(比如图书名称、作者、出版社等)。
如果客户查询到所需并且有售的图书,能够在线下达订单,然后提交给数据库,并且客户能够查询自己的订单的处理情况。
同时,客户应该能够维护自己的信息(比如修改自己的收货地址、联系方式等)。
网上书店系统应该至少拥有一个管理员。
管理员能够维护在售图书的基本信息(比如图书信息的增加、删除、修改等),并且能够对图书进行分类管理。
同时,管理员能够维护客户的信息,能够审核客户提交的订单以确认或删除订单。
1.2系统数据流图
通过对系统需求进行分析,我们确定系统中有两类用户:管理员和客户。
各类用户的具体描述如下:
(1)管理员
描述:管理员负责后台管理。
包括增加、删除、修改图书信息,对图书进行分类管理;维护客户信息(增加和删除客户账号);审核订单并确认合法订单或删除非法订单。
(2)客户
描述:客户可以查询有售图书的基本信息;可以维护自己的信息;可以进行网上订书;可以查询订单的处理情况。
1.2.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),图书价格大于零}
1.2.2.2 数据结构
(1){图书信息,每本图书的具体信息,组成:{图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格} }
(2){管理员,管理员的基本信息,组成:{管理员编号,管理员姓名} }(3){客户,客户的基本信息,组成:{客户编号,客户姓名,收货地址,账户余额,联系方式} }
(4){收货地址,客户的收货地址,组成:{地址编号,地址} }(5){订单,订单的信息,组成:{订单号,订单日期,订单细则,收货人姓名,
发货地址,管理员编号,收货人联系方式} }
(6){订单细则,订单的细节内容,组成:{细则号,图书编号,订购数量,发货状况} }
2 系统设计
2.1 数据库设计
2.1.1 概念结构设计
1.系统涉及到的实体
(1)管理员{管理员编号,管理员姓名}
(2)客户{客户编号,客户姓名,收货地址,账户余额,联系方
式}
(3)图书{图书编号,图书名,作者,出版社,图书类别,库存
余量,图书价格}
(4)订单{订单号,订单日期,订单细则,收货人姓名,发货地
址,管理员编号,收货人联系方式}
(5)订单细则{细则号,图书编号,订购数量,发货状况} (6)收货地址{地址编号,地址}
2. 系统E-R模型设计
A. 分E-R 模型设计
(1)每个客户可以拥有多个收货地址,这些地址只能被这个客
户使用。
因此,客户与收货地址之间是一对多关系。
E-R图
如下:
(2)一个客户可以下达多个定单,一个订单只能属于一个客
户。
因此,客户与订单是一对多关系。
E-图如下:
(3)一份订单里可以包含若干个订单细则。
因此,订单与订单细则之间是一对多关系。
E-R图如下:
(4)一个管理员可以审核多份定单,但是一份订单只能被一个管理员审核。
因此,管理员与订单是一对多关系。
E-R图如下:
(5)一个订单细则可以包含多本图书,一本图书也可以包含在多份订单细则中。
因此,图书与订单细则之间是多对多关
系。
E-R图如下:
B. 系统的总E-R图
合并以上E-R图即得系统总E-R图如下:
2.1.2 逻辑结构设计
根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统的数据库。
根据需要,设计了6个数据表,2个视图。
如下所示:
●管理员信息表:该表记录了管理员的相关信息,包括管理员编
号,登陆密码管理员姓名。
●客户信息表:该表记录了客户的相关信息,包括客户编号,登
录密码,客户姓名,联系方式,账户余额。
●收货地址表:该表记录了客户的收货地址信息,包括地址编号,
客户编号,地址。
●订单表:该表记录了订单的基本信息,包括订单号,客户编号,
订单日期,收货人姓名,发货地址,收货人联系方式,管理员
编号。
●订单细则表:该表记录了订单的细则信息,包括细则号,订单
号,图书编号,订购数量,发货状况。
●图书信息表:该表记录了图书的基本信息,包括图书编号,图
书名,作者,出版社,图书类别,库存余量,图书价格。
(1)客户购书信息视图:包括图书名,作者,出版社,订购数量,订单日期,发货状况,账户余额。
(2)管理员订单审核视图:包括订单号,客户号,图书编号,订购数量。
根据上面的逻辑结构设计,设计相应的表结构如下所示。
1.管理员信息表(Ginfo)
该表记录了管理员的相关信息,包括管理员编号,管理员姓名。
其结构如表2-1所示:
表2-1 Ginfo
该表记录了客户的相关信息,包括客户编号,客户姓名,联系方式,账户余额。
其结构如表2-2所示:
表2-2 Kinfo
该表记录了客户的收货地址信息,包括地址编号,客户编号,地址。
其结构如表2-3所示:
表2-3 ADinfo
4.订单表(Dinfo)
该表记录了订单的基本信息,包括订单号,客户编号,订单日期,收货人姓名,发货地址,收货人联系方式,管理员编号。
其结构如表2-4所示:
表2-4 Dinfo
该表记录了订单的细则信息,包括细则号,订单号,图书编号,订购数量,发货状况。
其结构如表2-5所示:
表2-5 Xinfo
该表记录了图书的基本信息,包括图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格。
其结构如表2-6所示:
表 2-6 Tinfo
2.2 系统物理设计
1.存储过程
(1)订单处理系统是整个网上书店系统的核心。
它的功能是检查客户欲提交的订单细则数据的合法性。
主要包括:检查图书的库存余量是否为零、检查客户的账户余额是否足够支付购书款。
检查订单细则数据流程图如图3-1所示:
图3-1 检查订单数据流程图
小结
不足:如在订单处理功能上应当增加发票处理功能,在图书管理上应当增加图书的仓储管理功能等。