图书在线销售系统数据库设计与实现
系统名称:图书在线销售系统
一.系统需求
a.图书在线销售系统包括图书录入、图书销售、销售统计、查询库存以及售完图书查询,对购书系统方方面面进行分析、规划、实施、调整,提高图书在线销售系统管理水平,节省人力、物力资源,也方便消费者购书。本数据库只包含了图书在线销售系统中的一些基本信息。
b.建立此数据库的主要目的就是为了更好的能对数据库进行操作,包括数据库的建立,设计数据库的概念模型、绘制ER图、ER图转换成关系模式、数据库模式的建立(即为数据库及其基本表的建立)、数据的录入以及完成一些简单的关系运算表达式的表达和相关的Select 查询语句的使用。 c.系统结构简述:
本系统包括五个实体:图书;用户;仓库;供应商;管理员。 注:各个基本表中关键字已在关系模式中说明
实体之间的关系转换为其他三个表:供货表;订单表;仓储表; d. 该数据库需要进行如下数据处理: 1、用户查询图书基本信息及所属类别:
书名、编号、类别、作者、售价、库存量、销售量 2、用户管理员查询图书的销售统计:
购买者、销售日期、售价、进价、订单号、剩余量、库存量 3、用户查询购物车情况:
已购书名、下单日期、订单号、售价 4、管理员查询所有用户信息:
用户名、用户编号、注册时间、消费情况
二、ER图
第1页
管理员编号 提货量 价格 数量 供货 n 仓库 1 储存 m 所在地 储存日期 m 供货商 货号 所在地 商号 提货日期 姓名 管理员 m 发货时间 发货 书籍编号 作者 n 书名 发货量 仓库编号 n 提货 m 售价 类别 库存量 图书 m 订单状态 购买 购买日期 销售量 n 用户名 注册邮箱 用户 注册时间 地址
订单号
三、关系模式(袁文芳) 1.转换实体:
供货商(商号,所在地) 仓库(仓库编号,所在地) 管理员(管理员编号,姓名)
图书(书籍编号,售价,类别,库存量,仓库编号,书名,作者) 用户(用户名,注册时间,地址,注册邮箱) 2.转换关系:
a 供货 m:n
供货(商号, 仓库编号, 价格, 货号, 数量)
b 提货m:n
第2页
提货(仓库编号,编号,提货量,提货日期) c 储存 1:m
储存(仓库编号,书籍编号,储存日期) d 发货 m:n
发货(编号,用户名,发货量,发货日期) e 购买 m:n
购买(书籍编号,用户名,订单号, 购买日期, 订单状态, 销售量) 供货商表结构 商号 Char(10) 所在地 Char(10) 主键 Not null 仓库表结构 仓库编号 Char(10) 所在地
Char(10) 主键 Not null 管理员表 编号 姓名
Char(10) Char(20) 主键 Not null
图书表结构 书籍编号 书名 作者 类别 库存量 售价 仓库编号 char(10) char(10) char(10) char(10) int(10) smallmoney char(10) datetime 主键 Not null Not null Not null Not null Not null Not null 储存日期
用户表结构 用户名 注册时间 地址 注册邮箱
char(10) datetime char(10) char(10) 提货关系表结构 仓库编号 管理员编号 提货量 提货日期 第3页
主键 Not null Not null Not null Char(10) Char(10) int datetime 主键,外键 主键,外键 供货关系表结构 商号 仓库编号 价格 数量 货号 发货关系表结构 用户名 管理员编号 发货量 发货日期
购买关系表结构 书籍编号 销售量 用户名 订单号 购买日期 订单状态 Char(10) int Char(8) Char(10) datetime Char(10) 外键 外键 Not null 主键 Check约束 取’已发货 ‘或’ 未发货‘
Char(10) Char(10) 主键,外键 主键,外键 储存关系表结构 仓库编号 书籍编号 储存日期 Char(10) Char(10) 主键,外键 主键,外键 Char(10) Char(10) Char(10) int Char(10) 主键,外键 主键,外键 Not null
datetime int datetime
五,系统实现
四、数据库及其基本表的建立
数据库的建立:
create database 图书在线销售系统 on (
name='图书在线销售系统',
filename='e:\\冉冉_袁文芳_杨博\\图书在线销售系统.mdf', size=10mb,
第4页
maxsize=20mb, filegrowth=1mb )
log on
(
name='图书在线销售系统',
filename='e:\\冉冉_袁文芳_杨博\\图书在线销售系统.ldf', size=10mb, maxsize=20mb, filegrowth=1mb)
go
建立基本表:
use图书在线销售系统
create table 图书表
(
书籍编号char(10) primary key, 书名char(10) not null, 作者char(10) , 类别char(10) not null, 售价smallmoney not null, 库存量int not null,
储存日期datetime not null, )
Go
create table 用户表 (
用户名 char(10) primary key, 注册时间 datetime not null, 地址 char(10) not null,
注册邮箱 char(10) not null,
)
Go
插入数据:
Insert into 图书表 values (‘book1’,’高数’,’数学老师’,’数学’,100,’$5’, ‘仓库1’,’2012-2-1’)
insert into 图书表 values (‘book2’,’大学物理’,’物理老师’,’物理’,100,’$6’, ‘仓库1’,’2012-2-1’) insert into 图书表 values (‘book3’,’电路’,’电路老师’,’物理’,100,’$10’, ‘仓库2’,’2012-2-2’)
insert into 供货商表values (‘供货商1’,’天津’) insert into 供货商表values (‘供货商2’,’北京’) insert into仓库表values (‘仓库1’,’天津’) insert into 仓库表values (‘仓库2’,’北京’)
insert into 管理员表values (‘管理员1’,’张三’)
第5页
insert into 管理员表values (‘管理员2’,’李四’)
insert into 用户表values (‘用户1’, ’2012-3-1’,’北京’,’yonghu1@126.com’) insert into 用户表values (‘用户2’, ’2012-3-1’,’ 天津’,’yonghu2@126.com’) insert into 用户表values (‘用户2’, ’2012-3-1’,’ 天津’,’yonghu2@126.com’)
用户表结构 用户名 注册时间 地址 注册邮箱
char(10) datetime char(10) char(10) 主键 Not null Not null Not null 第6页