1目录1.系统需求分析.........................................................................21.1系统基本功能描述...........................................................21.2系统数据流图..................................................................21.2.1数据流分析..............................................................31.2.2数据字典..................................................................31.2.2.1数据项..............................................................31.2.2.2数据结构..........................................................52.系统设计................................................................................52.1数据库设计......................................................................52.1.1概念结构设计..........................................................52.1.2逻辑结构设计..........................................................92.2系统物理设计................................................................13121系统需求分析1.1系统基本功能描述网上书店系统是依据网上书店能够在线出售图书和管理需求而进行设计的,目的是实现在线接受客户订单、书店信息管理的功能。需要在线购买图书的客户能够通过网上书店系统查询所需要的图书是否有售并能够查询有售图书的基本信息(比如图书名称、作者、出版社等)。如果客户查询到所需并且有售的图书,能够在线下达订单,然后提交给数据库,并且客户能够查询自己的订单的处理情况。同时,客户应该能够维护自己的信息(比如修改自己的收货地址、联系方式等)。网上书店系统应该至少拥有一个管理员。管理员能够维护在售图书的基本信息(比如图书信息的增加、删除、修改等),并且能够对图书进行分类管理。同时,管理员能够维护客户的信息,能够审核客户提交的订单以确认或删除订单。1.2系统数据流图通过对系统需求进行分析,我们确定系统中有两类用户:管理员和客户。各类用户的具体描述如下:(1)管理员描述:管理员负责后台管理。包括增加、删除、修改图书信息,对图书进行分类管理;维护客户信息(增加和删除客户账号);审核订单并确认合法订单或删除非法订单。(2)客户描述:客户可以查询有售图书的基本信息;可以维护自己的信息;可以进行网上订书;可以查询订单的处理情况。31.2.1数据流分析根据分析,我们可以得到系统的数据流图。(1)网上书店系统顶层数据流图如图1-1所示。1.2.2数据字典根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。下面列出部分数据字典内容。1.2.2.1数据项(1)管理员①{管理员编号,每位管理员在系统中的唯一编号也是管理员登陆的账号名,char(7)}②{管理员姓名,char(10)}③{管理员登陆密码,char(10)}(2)客户①{客户编号,每位客户在系统中的唯一编号,char(7)}②{客户姓名,char(10)}4③{地址编号,客户有多个地址时每个地址的编号,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)}5②{图书名,图书的题名,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)客户{客户编号,客户姓名,收货地址,账户余额,联系方6式}(3)图书{图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格}(4)订单{订单号,订单日期,订单细则,收货人姓名,发货地址,管理员编号,收货人联系方式}(5)订单细则{细则号,图书编号,订购数量,发货状况}(6)收货地址{地址编号,地址}2.系统E-R模型设计A.分E-R模型设计(1)每个客户可以拥有多个收货地址,这些地址只能被这个客户使用。因此,客户与收货地址之间是一对多关系。E-R图如下:(2)一个客户可以下达多个定单,一个订单只能属于一个客户。因此,客户与订单是一对多关系。E-图如下:7(3)一份订单里可以包含若干个订单细则。因此,订单与订单细则之间是一对多关系。E-R图如下:(4)一个管理员可以审核多份定单,但是一份订单只能被一个管理员审核。因此,管理员与订单是一对多关系。E-R图如下:8(5)一个订单细则可以包含多本图书,一本图书也可以包含在多份订单细则中。因此,图书与订单细则之间是多对多关系。E-R图如下:B.系统的总E-R图合并以上E-R图即得系统总E-R图如下:92.1.2逻辑结构设计根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统的数据库。根据需要,设计了6个数据表,2个视图。如下所示:管理员信息表:该表记录了管理员的相关信息,包括管理员编号,登陆密码管理员姓名。客户信息表:该表记录了客户的相关信息,包括客户编号,登录密码,客户姓名,联系方式,账户余额。收货地址表:该表记录了客户的收货地址信息,包括地址编号,客户编号,地址。订单表:该表记录了订单的基本信息,包括订单号,客户编号,订单日期,收货人姓名,发货地址,收货人联系方式,管理员10编号。订单细则表:该表记录了订单的细则信息,包括细则号,订单号,图书编号,订购数量,发货状况。图书信息表:该表记录了图书的基本信息,包括图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格。(1)客户购书信息视图:包括图书名,作者,出版社,订购数量,订单日期,发货状况,账户余额。(2)管理员订单审核视图:包括订单号,客户号,图书编号,订购数量。根据上面的逻辑结构设计,设计相应的表结构如下所示。1.管理员信息表(Ginfo)该表记录了管理员的相关信息,包括管理员编号,管理员姓名。其结构如表2-1所示:表2-1Ginfo字段说明类型(长度)备注Gid管理员编号char(7)主键,不为空Gcode登录密码char(10)不为空Gname管理员姓名char(10)不为空2.客户信息表(Kinfo)该表记录了客户的相关信息,包括客户编号,客户姓名,联系方式,账户余额。其结构如表2-2所示:表2-2Kinfo字段说明类型(长度)备注Kid客户编号char(7)主键,不为空Kcode登录密码char(10)不为空11Kname客户姓名char(10)不为空Kcontact联系方式char(15)不为空Ksave账户余额float(7)不小于零3.收货地址表(ADinfo)该表记录了客户的收货地址信息,包括地址编号,客户编号,地址。其结构如表2-3所示:表2-3ADinfo字段说明类型(长度)备注ADid地址编号char(7)主键,不为空Kid客户编号char(7)主键,外键,不为空Add地址varchar(100)不为空4.订单表(Dinfo)该表记录了订单的基本信息,包括订单号,客户编号,订单日期,收货人姓名,发货地址,收货人联系方式,管理员编号。其结构如表2-4所示:表2-4Dinfo字段说明类型(长度)备注Did订单号char(7)主键,不为空Kid客户编号char(7)主键,外键,不为空Dname收货人姓名char(10)不为空Dadd发货地址varchar(100)外键,不为空Dcontact收货人联系方式char(15)外键,不为空Gid管理员编号char(7)外键,不为空Ddate订单日期datetime不为空125.订单细则表(Xinfo)该表记录了订单的细则信息,包括细则号,订单号,图书编号,订购数量,发货状况。其结构如表2-5所示:表2-5Xinfo字段说明类型(长度)备注Xid细则号char(7)主键,不为空Did订单号char(7)主键,外键,不为空Tid图书编号char(7)外键,不为空Xnum订购数量smallint大于零Xdetail发货状况varchar(100)默认未发货6.图书信息表(Tinfo)该表记录了图书的基本信息,包括图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格。其结构如表2-6所示:表2-6Tinfo字段说明类型(长度)备注Tid图书编号char(7)主键,不为空Tname图书名varchar(20)不为空Twriter作者char(10)不为空Tpub出版社varchar(20)不为空Tnum库存余量smallint不小于零,不为空Tprice图书价格float(5)不小于零,不为空Tsort图书类别varchar(20)不为空132.2系统物理设计1.存储过程(1)订单处理系统是整个网上书店系统的核心。它的功能是检查客户欲提交的订单细则数据的合法性。主要包括:检查图书的库存余量是否为零、检查客户的账户余额是否足够支付购书款。检查订单细则数据流程图如图3-1所示:图3-1检查订单数据流程图14小结不足:如在订单处理功能上应当增加发票处理功能,在图书管理上应当增加图书的仓储管理功能等。