版权声明:对于本博客所有原创文章,允许个人、教育和非商业目的使用,但务必保证文章的完整性且不作任何修改地以超链接形式注明原始作者、出处及本声明。
博客地址:http://blog.csdn.net/shuxiao9058
原始作者:季亚
伴随着信息化的发展,计算机走进了千家万户,人们的交流变得方便,方便了网民的生活!此外,伴随着卓越、当当、淘宝等网络购物平台的兴起,网络购物也被网民认可,首先,网上书店方便了网民的生活,更加便捷地、足不出户便可买到心仪的书籍;其次,网上购书减少了许多中间销售代理,因此价格会比较低,对广大网民的好处是非常明显的;再者,网上书店是信息化购物,基本上所有操作都是通过计算机程序自动完成的,因此大大降低了劳力的消耗;最后,电子商务与出版发行业的结合使发展网上书店及研究网上书店具有双重意义,充分结合互联网销售的特点探索图书发行的新渠道和新模式,是对电子商务科学的充实和补充,更是对出版发行业发行渠道和市场的开拓和创新。
数据库对于一个系统的意义是相当重要的,它关系到整个项目的整体流程,整个网站的后期维护便捷与否,从长远利益来看,数据库的设计是至关重要的。
数据库,即存放数据的仓库,设计出数据库可以方便的运用于实际开发的应用程序或者网站当中,使其能够完成譬如增、删、改数据,本实验的目的在于通过一个简要的数据库设计理解整个数据库设计流程。
本实验将设计出一个网上书店数据库,其要求简要如下:
(1)系统用户由两类组成:管理员和客户。
(2)管理员负责后台管理:
① 图书信息的维护(增、删、改),图书要进行分类管理;
② 客户信息的维护;
③ 订单的确认和删除。
(3)读者可以查询图书的基本信息,可以维护自己的信息,可以进行网上订书,可以查询订单处理的情况。
(4)在数据库设计中应考虑如下因素:
① 数据库的逻辑模型应能满足系统的基本需求;
② 数据库的逻辑模型应符合关系数据的规范化要求;
③ 数据库表应具有基本的完整性约束。
一个书店中的书籍类别、数量是非常庞大的,虽然书籍的分类是非常规范,但仅仅局限于概念上的分类仍无法运用于实践当中,这就给管理人员带来了极大的工作量,因此就需要一个比较科学的管理办法来解决此问题。
由于数据库能够非常方便地解决此类问题,因此我们便想到了利用数据库来进行数据管理。
该系统主要分为两部分,一个为普通会员用户部分,亦即前台系统。另外一个是系统的管理员部分,即后台系统。网上书店前台系统部分主要是实现网上选书、购书、产生订单等功能的系统。后台实现书籍管理、用户管理、订单处理等功能。
开发工具:Microsoft SQLServer 2000
开发语言:SQL
开发技术:数据库开发技术
面向对象:需求者
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。本实验中最终将使用Microsoft SQLServer 2000数据库管理系统将我们设计的数据库实现。
图2-1 系统功能模块图
系统共有九个实体:客户、管理员、图书类型、图书、订单、详细订单、参数设置、图书评价、信息反馈。
(1)客户(会员)的属性:自动编号CustomerId、客户名、客户密码、真实姓名、性别、客户电话、E-mail、地址、注册时间、提示问题、问题答案、登陆次数、最近登陆时间、邮编
(2)管理员的属性:自动编号AdminId、管理员名称、管理员邮箱、密码、权限标志
(3)图书类型的属性:自动编号BookTypeId、类别名称
(4)图书的属性:自动编号BookId、图书名称、图书类型、出版社、出版日期、开本、版次、图书作者、图书译者、图书ISBN、图书定价、图书页码、图书简介、图书目录、市场价、会员价、成交量、浏览次数、折扣、图书封面图、图书库存量、入库时间、封装方式
(5)订单的属性:自动编号Id、订单号OrderId、客户编号、下单日期、总订购数量、留言、送货方式、支付方式、收货人姓名、收货地址、收货人联系方式、备注、总卖出价
(6)详细订单属性:自动编号Id、详细订单OrderDetailId、订单号OrderId、图书编号、订购数量、发货状态、收货状态、卖出总价
(7)参数设置属性有:网站名、注册条款、公告、地址、邮编、电话号码等
(8)图书评价的属性:自动编号CommentId、图书编号、评论客户编号、评论客户名、评论时间、评论内容、审核标志
(9)信息反馈的属性:自动编号ReplyId、留言类型、留言主题、留言内容、留言客户编号、留言客户名、留言日期、客户IP
图3-1 图书类别信息
图3-2 管理员信息
图3-3 图书信息
图3-4 客户信息
图3-5 购物车临时订购信息
图3-6 订单信息
图3-7 订单详细信息
图3-8 图书评论信息
图3-9 信息反馈
图3-10 网上书店顶层E-R图
根据3.2节中的E-R图可以将系统中的概念模型转换为具体的表(即关系)结构,共分为9个关系,详细信息如下所示:
客户(会员)(客户编号,客户名,客户密码,真实姓名,性别,客户电话,E-mail,地址,注册时间,提示问题,问题答案,登陆次数,最近登陆时间,邮编)
管理员(管理员编号,管理员名称,管理员邮箱,密码,权限标志)
图书类型(图书类型编号,类别名称)
图书(图书编号,图书名称,图书类型,出版社,出版日期,开本,版次,图书作者,图书译者,图书ISBN,图书定价,图书页码,图书简介,图书目录,市场价,会员价,成交量,浏览次数,折扣,图书封面图,图书库存量,入库时间、封装方式)
购物车零时订购信息(客户编号,图书编号,订购数量,总价,是否付款)
订单(Id,订单号,客户编号,下单日期,总订购数量,留言,送货方式,支付方式,收货人姓名,收货地址,收货人联系方式,备注,总卖出价)
详细订单(Id,详细订单编号,订单号,图书编号,订购数量,发货状态,收货状态,卖出总价)
图书评价(图书评价编号,图书编号,评论客户编号,评论客户名,评论时间、评论内容,审核标志)
信息反馈(信息反馈编号,留言类型,留言主题,留言内容,留言客户编号,留言客户名,留言日期,客户IP)
为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型及必要的约束规则,给出如下所示数据库表的基本结构及说明:
(1) 客户信息表tb_customerinfo
表1 客户信息表
列名 |
说明 |
数据类型 |
约束 |
CustomerId |
客户编号 |
int |
主码(自增字段) |
CustomerName |
客户名称 |
varchar(20) |
主码not null |
CustomerPwd |
客户密码 |
varchar(20) |
not null |
Customertruename |
真实姓名 |
varchar(20) |
not null |
CustomerSex |
性别 |
varchar(2) |
not null, 取“男”或“女” |
CustomerTel |
客户电话 |
varchar(20) |
not null |
CustomerEmail |
|
varchar(20) |
not null |
CustomerAddr |
地址 |
varchar(20) |
not null |
CustomerRegTime |
注册时间 |
datetime |
not null |
CustomerQues |
提示问题 |
varchar(200) |
|
CustomerAnswer |
问题答案 |
varchar(200) |
|
CustomerLogTime |
登陆次数 |
int |
not null |
CustomerLastLogT |
最近登陆时间 |
datetime |
not null |
(2) 图书类型信息表tb_booktypeinfo
表2 图书类型信息表
列名 |
说明 |
数据类型 |
约束 |
BookTypeId |
图书类型编号 |
int |
主码(自增字段) |
BookTypeName |
类别名称 |
varchar(50) |
not null |
(3) 图书信息表tb_bookinfo
表3 图书信息表
列名 |
说明 |
数据类型 |
约束 |
BookId |
图书编号 |
int |
主码(自增字段) |
BookTypeId |
图书类型 |
int |
not null, 引用tb_booktypeinfo的外码 |
BookName |
课程名 |
varchar(20) |
not null |
BookPress |
出版社 |
varchar(20) |
not null |
BookPubDate |
出版日期 |
datetime |
not null |
BookSize |
开本 |
varchar(10) |
not null |
BookVersion |
版次 |
varchar(10) |
not null |
BookAuthor |
图书作者 |
varchar(10) |
not null |
BookTanslor |
图书译者 |
varchar(10) |
|
Bookisbn |
图书ISBN |
varchar(20) |
not null |
BookPrice |
图书定价 |
money |
not null |
BookPages |
图书页码 |
int |
not null |
BookOutline |
图书简介 |
varchar(200) |
not null |
BookCatalog |
图书目录 |
varchar(200) |
not null |
BookMprice |
市场价 |
money |
not null |
BookPrprice |
会员价 |
money |
not null |
BookDealmount |
成交量 |
int |
not null |
BookLookmount |
浏览次数 |
int |
not null |
BookDiscount |
折扣 |
decimal |
not null |
BookPic |
图书封面图 |
varchar(20) |
not null |
BookStoremount |
图书库存量 |
int |
not null |
BookStoretime |
入库时间 |
datetime |
not null |
BookPackstyle |
封装方式 |
varchar(20) |
not null |
(4) 管理员信息表tb_manager
表4 管理员信息表
列名 |
说明 |
数据类型 |
约束 |
AdminId |
管理员编号 |
int |
主码(自增字段) |
AdminName |
管理员名称 |
varchar(10) |
not null |
AdminPwd |
密码 |
varchar(20) |
not null |
AdminFlag |
权限标志 |
int |
not null |
(5) 参数设置信息表tb_parameter
表5 参数设置信息表
列名 |
说明 |
数据类型 |
约束 |
webname |
网站名 |
varchar(20) |
主码(自增字段) |
regtiaoyue |
注册条款 |
varchar(100) |
not null |
notice |
公告 |
varchar(100) |
not null |
address |
地址 |
varchar(20) |
not null |
postcode |
邮编 |
varchar(10) |
not null |
tel |
电话号码 |
varchar(10) |
not null |
copyright |
版权 |
varchar(20) |
not null |
weblogo |
网站Logo |
varchar(100) |
not null |
website |
网站地址 |
varchar(10) |
not null |
affordmethod |
支付方式 |
varchar(100) |
not null |
shopstream |
购物流程 |
varchar(100) |
not null |
postmethod |
送货方式 |
varchar(100) |
not null |
postprice |
送货费用 |
money |
not null |
Postdescp |
运输说明 |
varchar(100) |
not null |
worktime |
工作时间 |
varchar(20) |
not null |
service |
售后服务 |
varchar(100) |
not null |
law |
使用法律 |
varchar(100) |
not null |
commques |
常见问题 |
varchar(100) |
not null |
dealrule |
交易条款 |
varchar(100) |
not null |
(6) 购物车临时订购信息tb_shopbook
表6 购物车临时订购信息表
列名 |
说明 |
数据类型 |
约束 |
CustomerId |
客户编号 |
int |
主码(自增字段) |
BookId |
图书编号 |
int |
主码, 引用tb_bookinfo的外码 |
ordermount |
订购数量 |
int |
not null |
price |
总价 |
money |
not null |
ispay |
是否付款 |
varchar(10) |
not null,默认为未付款,取“未付款”或“已付款” |
(7) 订单信息表tb_order
表7 订单信息表
列名 |
说明 |
数据类型 |
约束 |
Id |
自动编号 |
int |
not null(自增字段) |
OrderId |
订单编号 |
varchar(20) |
主码 |
CustomerId |
客户编号 |
int |
not null, 引用tb_customerinfo的外码 |
Orderdate |
下单日期 |
datetime |
not null |
Ordermount |
总订购数量 |
int |
not null |
message |
留言 |
varchar(100) |
|
postmethod |
送货方式 |
varchar(100) |
not null |
paymethod |
支付方式 |
varchar(100) |
not null |
recevername |
收货人姓名 |
varchar(10) |
not null |
receveraddr |
收货地址 |
varchar(20) |
not null |
recevertel |
收货人电话号码 |
varchar(10) |
not null |
memo |
备注 |
varchar(100) |
|
totalprice |
总卖出价 |
money |
not null |
(8) 订单详细信息表tb_orderdetail
表8 订单详细信息表
列名 |
说明 |
数据类型 |
约束 |
Id |
自动编号 |
int |
not null(自增字段) |
OrderDetailId |
详细订单编号 |
int |
主码 |
OrderId |
订单号 |
varchar(20) |
not null, 引用tb_order的外码 |
BookId |
图书编号 |
int |
not null |
ordermount |
订购数量 |
int |
not null |
poststatus |
发货状态 |
varchar(10) |
not null,默认为未发货,取“未发货”或“已发货” |
Recevstatus |
收货状态 |
varchar(10) |
not null,默认为未收货,取“未收货”或“已收货” |
sigletotalprice |
卖出总价 |
money |
not null |
(9) 图书评价信息表tb_comment
表9 图书评价信息表
列名 |
说明 |
数据类型 |
约束 |
CommentId |
图书评价编号 |
int |
主码(自增字段) |
BookId |
图书编号 |
int |
not null,引用tb_bookinfo的外码 |
CustomerId |
评论客户编号 |
int |
not null, 引用tb_customerinfo的外码 |
Customername |
评论客户名 |
varchar(20) |
not null |
Commentdate |
评论时间 |
datetime |
not null |
Commentcontent |
评论内容 |
varchar(100) |
not null |
Commentflag |
审核标志 |
varchar(10) |
not null |
(10) 信息反馈信息表tb_reply
表10 信息反馈信息表
列名 |
说明 |
数据类型 |
约束 |
ReplyId |
信息反馈编号 |
int |
主码(自增字段) |
ReplyType |
留言类型 |
varchar(20) |
not null |
Replytitle |
留言主题 |
varchar(20) |
not null |
Replycontent |
留言内容 |
varchar(100) |
not null |
CustomerId |
留言客户编号 |
int |
not null, 引用tb_customerinfo的外码 |
Customername |
留言客户名 |
varchar(20) |
not null |
Commentdate |
留言日期 |
datetime |
not null |
CustomerIP |
客户IP |
varchar(10) |
not null |
其中,表5即参数设置信息表是用户配置网站logo、名称、公告等信息的表,它是一个独立于其它表的表。
本章节主要包含创建表、添加数据和创建必要的触发器、存储过程等内容。
(1) tb_customerinfo客户信息表
create table tb_customerinfo (
CustomerId int identity,
CustomerName varchar(20) not null,
CustomerPwd varchar(20) not null,
Customertruename varchar(20) not null,
CustomerSex varchar(2) not null
constraint CKC_CUSTOMERSEX_TB_CUSTO check (CustomerSex in ('男','女')),
CustomerTel varchar(20) not null,
CustomerEmail varchar(20) not null,
CustomerAddr varchar(20) not null,
CustomerRegTime datetime not null,
CustomerQues varchar(200) null,
CustomerAnswer varchar(200) null,
CustomerLogTime int not null,
CustomerLastLogT datetime not null,
constraint PK_TB_CUSTOMERINFO primary key(CustomerId, CustomerName)
)
(2)
tb_booktypeinfo图书类型信息表
create table tb_booktypeinfo (
BookTypeId int identity,
BookTypeName varchar(50) not null,
constraint PK_TB_BOOKTYPEINFO primary key (BookTypeId)
)
(3)
tb_bookinfo图书信息表
create table tb_bookinfo (
BookId int identity,
BookTypeId int not null,
BookName varchar(20) not null,
BookType varchar(10) not null,
BookPress varchar(20) not null,
BookPubDate datetime not null,
BookSize varbinary(10) not null,
BookVersion varchar(10) not null,
BookAuthor varchar(10) not null,
BookTanslor varchar(10) null,
Bookisbn varchar(20) not null,
BookPrice money not null,
BookPages int not null,
BookOutline varchar(200) not null,
BookCatalog varchar(200) not null,
BookMprice money not null,
BookPrprice money not null,
BookDealmount int not null,
BookLookmount int null,
BookDiscount varchar(10) not null,
BookPic money not null,
BookStoremount int not null,
BookStoretime datetime not null,
BookPackstyle varchar(20) not null,
constraint PK_TB_BOOKINFO primary key (BookId)
)
(4)
tb_manager管理员信息表
create table tb_manager (
AdminId int identity,
AdminName varchar(10) not null,
AdminPwd varchar(20) not null,
AdminFlag int not null,
constraint PK_TB_MANAGER primary key (AdminId)
)
(5)
tb_parameter参数设置信息表
tb_ create table tb_parameter (
webname varchar(20) not null,
regtiaoyue varchar(100) not null,
notice varchar(100) not null,
address varchar(20) not null,
postcode varchar(10) not null,
tel varchar(10) not null,
copyright varchar(20) not null,
weblogo varchar(100) not null,
website varchar(10) not null,
affordmethod varchar(100) not null,
shopstream varchar(100) not null,
postmethod varchar(100) not null,
postprice money not null,
Postdescp varchar(100) not null,
worktime varchar(20) not null,
service varchar(100) not null,
law varchar(100) not null,
commques varchar(100) not null,
dealrule varchar(100) not null,
constraint PK_TB_PARAMETER primary key (webname)
)
(6)
shopbook购物车零时订购信息
create table tb_shopbook (
CustomerId int not null,
BookId int not null,
ordermount int not null,
price money not null,
ispay varchar(10) not null default '未付款'
constraint CKC_ISPAY_TB_SHOPB check (ispay in ('未付款','已付款')),
constraint PK_TB_SHOPBOOK primary key (CustomerId, BookId)
)
(7)
tb_order订单信息表
create table tb_order (
Id int identity,
OrderId varchar(20) not null,
CustomerId int not null,
Orderdate datetime not null,
Ordermount int not null,
message varchar(100) null,
postmethod varchar(100) not null,
paymethod varchar(100) not null,
recevername varchar(10) not null,
receveraddr varchar(20) not null,
recevertel varchar(10) not null,
memo varchar(100) null,
totalprice money not null,
constraint PK_TB_ORDER primary key (OrderId)
)
(8)
tb_orderdetail订单详细信息表
create table tb_orderdetail (
id int identity,
OrderDetailId varchar(20) not null,
OrderId varchar(20) not null,
BookId int not null,
ordermount int not null,
poststatus varchar(10) not null default '未发货'
constraint CKC_POSTSTATUS_TB_ORDER check (poststatus in ('未发货','已发货')),
Recevstatus varchar(10) not null default '未收货'
constraint CKC_RECEVSTATUS_TB_ORDER check (Recevstatus in ('未收货','已收货')),
sigletotalprice money not null,
constraint PK_TB_ORDERDETAIL primary key (OrderDetailId)
)
(9)
tb_comment图书评价信息表
create table tb_comment (
CommentId int not null,
BookId int not null,
CustomerId int not null,
Customername varchar(20) not null,
Commentdate datetime not null,
Commentcontent varchar(100) not null,
Commentflag varchar(10) not null,
constraint PK_TB_COMMENT primary key (CommentId)
)
(10)
tb_reply信息反馈信息表
create table tb_reply (
ReplyId int not null,
CustomerId int not null,
ReplyType varchar(20) not null,
Replytitle varchar(20) not null,
Replycontent varchar(100) not null,
Customername varchar(20) not null,
Commentdate datetime not null,
CustomerIP varchar(10) not null,
constraint PK_TB_REPLY primary key (ReplyId)
)
alter table tb_bookinfo
add constraint FK_TB_BOOKI_REFERENCE_TB_BOOKT foreign key (BookTypeId)
references tb_booktypeinfo (BookTypeId)
go
alter table tb_comment
add constraint FK_TB_COMME_REFERENCE_TB_BOOKI foreign key (BookId)
references tb_bookinfo (BookId)
go
alter table tb_comment
add constraint FK_TB_COMME_REFERENCE_TB_CUSTO foreign key (CustomerId)
references tb_customerinfo (CustomerId)
go
alter table tb_order
add constraint FK_TB_ORDER_REFERENCE_TB_CUSTO foreign key (CustomerId)
references tb_customerinfo (CustomerId)
go
alter table tb_orderdetail
add constraint FK_TB_ORDER_REFERENCE_TB_ORDER foreign key (OrderId)
references tb_order (OrderId)
go
alter table tb_orderdetail
add constraint FK_TB_ORDER_REFERENCE_TB_BOOKI foreign key (BookId)
references tb_bookinfo (BookId)
go
alter table tb_reply
add constraint FK_TB_REPLY_REFERENCE_TB_CUSTO foreign key (CustomerId)
references tb_customerinfo (CustomerId)
go
alter table tb_shopbook
add constraint FK_TB_SHOPB_REFERENCE_TB_BOOKI foreign key (BookId)
references tb_bookinfo (BookId)
go
alter table tb_shopbook
add constraint FK_TB_SHOPB_REFERENCE_TB_CUSTO foreign key (CustomerId)
references tb_customerinfo (CustomerId)
go
insert into tb_manager(AdminName,AdminPwd, AdminFlag) values (’admin’,’admin’,1)
insert into tb_customerinfot (CustomerName, CustomerPwd, Customertruename, CustomerSex, CustomerTel, CustomerEmail, CustomerAddr, CustomerRegTime, CustomerQues, CustomerAnswer, CustomerLogTime, CustomerLastLogT) values (‘toy’,’toy’,’李明’,’男’,’1231628368’,’[email protected]’,’常熟理工’,’1’,’’,’’,’2010-12-22 11:00:11:111’,’ 2010-12-22 11:00:11:111’)
insert into tb_booktypeinfo(BookTypeName) values (’科技类’)
insert into tb_bookinfo values (‘’, ’1’, ’php编程宝典’ ,’清华大学出版社’, ’2010-2-1’, ’16k’,’第二版’,’云峰’,’’,’978-7-900-2131-8’,’56.00’,’100’,’合法哈客户卡的合法’,’发的发’,’发的发’,’57.00’,’56.50’,’12’,’34’,’0.87’,’C://1.jpg’,’90’,’2010-1-1 1:1:1:111’,’精品包装’)
insert into tb_order values (‘’, ’20101202001’, ’1’ ,’ 2010-12-22 12:00:11:111’, ’2’, ’’,’申通快递’,’建行’,’’,’李明’,’常熟理工’,’12313212323’,’’,’180’)
insert into tb_orderdetail values (‘’, ’ 2010120200101’, ’ 20101202001’ ,’1’, ’2’, ’’,’’,’云峰’,’’,’180’)
insert into tb_parameter values (‘风云网上书店’, ’热熔器额外人’, ’的发爱的’ ,’南京十字路口’, ’331231’, ’080-21312’,’@copyright ljfl’, C://logo.jpg’,’www.jljl.com’,’建行、工行’,’发的发放’,’合法哈客户卡的合法’,’发的发’,’发的发’,’7.00’,’8:00-12:00’,’f得法’,’发的说法’,’0.87’,’的法定’)
5.4.1 定义一个触发器,其基本功能是在tb_bookinfo表中修改库存数量时,检查数量是否小于0,如果是提示库存不足,库存为空。其具体代码如下所示:
create trigger trig1
on tb_bookinfo
for update
as
if(update(BookStoremount))
begin
declare @mount int
set @mount=(select BookStoremount from deleted)
if(@mount<0)
begin
print '库存不足,库存为空'
rollback
end
end
5.4.2 定义一个触发器,其基本功能是在填写订单和详细订单的时候相应的总价被计算处理填入相应的位置。其具体代码如下所示:
create trigger trig2
on tb_orderdetail
for insert,update
as
begin
declare @mount int,@price money,@sigleprice money,@totalprice money
set @mount=(select ordermount from inserted)
set @totalprice=(select totalprice from tb_order,inserted where tb_order.orderid=inserted.orderid)
set @price=(select bookprice from tb_bookinfo,inserted where tb_bookinfo.bookid=inserted.bookid)
set @sigleprice=@mount*@price
update tb_orderdetail set sigletotalprice=@sigleprice where orderdetailid=(select orderdetailid from inserted )
update tb_order set totalprice=(@totalprice+@sigleprice) where orderid=(select orderid from inserted)
end
go
5.5.1 建立存储过程customer_book,功能是客户在网站前台根据客户名称来查询买到的图书详细情况,其实现代码如下所示:
create procedure customer_book
@customername varchar(20),
@orderdate datetime out,
@bookname varchar(20) out,
@price money out,@orsermount int out,
@sigletotalprice money out,
@totalprice money out,
@pstatus varchar(10) out,
@rstatus varchar(10) out
as
select
@orderdate=orderdate,@bookname=bookname,@price=bookprice,
@sigletotalprice=sigletotalprice,@totalprice=totalprice,
@pstatus=poststatus,@rstatus=recevstatus
from tb_bookinfo,tb_customerinfo,tb_order,tb_orderdetail
where tb_customerinfo.customerid=tb_order.customerid
and tb_bookinfo.bookid=tb_orderdetail.bookid
and tb_customerinfo.customername=@customername
5.5.2 建立存储过程admin_book,功能是管理员在网站后台根据客户名称来查询买到的图书详细情况,其实现代码如下所示:
create procedure admin_book
@customername varchar(20),
@orderdate datetime out,
@bookname varchar(20) out,
@message varchar(100) out,
@memo varchar(100) out,
@recevername varchar(10)out,
@receveraddr varchar(20) out,
@recevertel varchar(10) out,
@price money out,
@orsermount int out,
@sigletotalprice money out,
@totalprice money out,
@pstatus varchar(10) out,
@rstatus varchar(10) out
as
select
@orderdate=orderdate,@bookname=bookname,@message=message,
@memo=memo,@recevername=recevername,@receveraddr=receveraddr,
@recevertel=recevertel,@price=bookprice,@sigletotalprice=sigletotalprice,
@totalprice=totalprice,@pstatus=poststatus,@rstatus=recevstatus
from tb_bookinfo,tb_customerinfo,tb_order,tb_orderdetail
where tb_customerinfo.customerid=tb_order.customerid
and tb_bookinfo.bookid=tb_orderdetail.bookid
and tb_customerinfo.customername=@customername
通过本次实验使我对数据库有了一个更加全面,更加深入的了解,也可以说是对本学期所学的数据库知识的一个总结,这次实验不像以前一样,只是对数据库某一部分知识的练习巩固,不仅仅是设计几张表,设计几个存储过程,触发器,而是对这些知识的一个整合,是一次综合的练习,使我对设计一个数据库的流程有了一个了解和掌握。
[2] 白尚旺,党伟超.PowerDesign软件工程技术[M].北京:电子工业出版社.2004.8.
备注:以前帮同学做的数据库系统大作业(在本人的基础上修改的,参考:数据库设计之学生选课系统),不喜勿喷!!!