数据库设计--《网上书店系统》(2)

2019-03-16 19:28

则中。因此,图书与订单细则之间是多对多关系。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


数据库设计--《网上书店系统》(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:天然气公司各部门职责

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: