为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

《网上书店系统》

2013-11-19 12页 doc 336KB 60阅读

用户头像

is_435602

暂无简介

举报
《网上书店系统》1 系统需求分析 1.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-R图如下: (3)一份订单里可以包含若干个订单细则。因此,订单与订单细则之间是一对多关系。E-R图如下: (4) 一个管理员可以审核多份定单,但是一份订单只能被一个管理员审核。因此,管理员与订单是一对多关系。E-R图如下: (5) 一个订单细则可以包含多本图书,一本图书也可以包含在多份订单细则中。因此,图书与订单细则之间是多对多关系。E-R图如下: B. 系统的总E-R图 合并以上E-R图即得系统总E-R图如下: 2.1.2 逻辑结构设计 根据以上的分析,将E-R模型转换成逻辑模型,设计出本系统的数据库。根据需要,设计了6个数据表,2个视图。如下所示: · 管理员信息表:该表记录了管理员的相关信息,包括管理员编号,登陆密码管理员姓名。 · 客户信息表:该表记录了客户的相关信息,包括客户编号,登录密码,客户姓名,联系方式,账户余额。 · 收货地址表:该表记录了客户的收货地址信息,包括地址编号,客户编号,地址。 · 订单表:该表记录了订单的基本信息,包括订单号,客户编号,订单日期,收货人姓名,发货地址,收货人联系方式,管理员编号。 · 订单细则表:该表记录了订单的细则信息,包括细则号,订单号,图书编号,订购数量,发货状况。 · 图书信息表:该表记录了图书的基本信息,包括图书编号,图书名,作者,出版社,图书类别,库存余量,图书价格。 以上是在数据库中的基本表。在具体的查询过程中,如果全部直接从基 本表查询,则要建立多重的联合(内联)查询,这样用起来很不方便,也容易出错;同时影响系统效率。因此建立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所示: 表2-3 ADinfo 字段 说明 类型(长度) 备注 ADid 地址编号 char(7) 主键,不为空 Kid 客户编号 char(7) 主键,外键,不为空 Add 地址 varchar(100) 不为空 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) 不为空 2.2 系统物理设计 1.存储过程 (1)订单处理系统是整个网上书店系统的核心。它的功能是检查客户欲提交的订单细则数据的合法性。主要包括:检查图书的库存余量是否为零、检查客户的账户余额是否足够支付购书款。检查订单细则数据流程图如图3-1所示: 图3-1 检查订单数据流程图 存储过程检查接收到的订单细则数据是否产生冲突(冲突产生的原因是:订购数量大于图书的库存余量、购书的金额大于账户余额),如果没有冲突产生,则将数据插入订单细则表(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 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 小结 由于设计MIS经验不足,时间有限,我虽然在有限时间里顺利的完成了网上书店系统的分析、设计和调试工作,但是本系统仍需进一步扩充和完善,使之更符合实际的应用。如在订单处理功能上应当增加发票处理功能,在图书管理上应当增加图书的仓储管理功能等。我充分体会到理论知识的重要性,但更加体会到实践的重要性。只有通过实践,我们才能发现并解决问题,才能真正掌握一项技术。我会在将来的软件设计、开发过程中进一步学习,不断提高自己的专业技能。 1
/
本文档为【《网上书店系统》】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索