销售管理系统数据库设计说明书Word格式文档下载.docx
《销售管理系统数据库设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《销售管理系统数据库设计说明书Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
(5)供应商(供应商编号,供应商名称,联系人姓名,电话,地址,Email)
(6)采购订单(采购订单号,商品编号,员工号,供应商编号,订购数量,订购日期)
(7)销售订单(销售订单号,商品编号,员工号,客户号,订购数量,订购日期)
五、物理结构设计(5分)
为销售管理数据库设计一个数据文件,一个日志文件,放在D盘的data文件夹下;
销售管理数据库里面包含7个表,分别为商品、部门、员工、供应商、客户以及采购订单和销售订单;
数据库和数据表的结构定义请看后面创建对象的SQL语句。
部门表
列名
数据类型
宽度
为空性
说明
部门编号
int
主关键字
部门名称
varchar
30
唯一键
部门主管
char
8
√
备注
50
员工表
员工编号
姓名
20
性别
2
取值为男或女
出生年月
smalldatetime
聘任日期
工资
money
取值范围800-100000
来自“部门表”的外键
供应商表
供应商编号
供应商名称
联系人姓名
电话
13
电话长度为7-13位字符
地址
100
E-mail
E-mail地址包含“@”
客户表
客户编号
公司名称
商品表
商品编号
商品名称
单价
Decimal(8,2)
单价大于0
库存量
库存量为非负数
已售数量
已售数量为非负数
采购订单表
采购订单号
来自商品表的外键
来自员工表的外键
来自供应商表的外键
订购数量
订购日期
销售订单表
销售订单号
来自客户表的外键
六、数据库的实施(共65分)
创建数据库各种对象和执行查询的SQL语句
1.创建数据库(5分)
createdatabase销售管理
onprimary
(name=Sales_data,
filename='
d:
\data\Sale_data.mdf'
size=10mb,
maxsize=unlimited,
filegrowth=10%)
logon
(name=Sales_log,
\data\Sale_log.ldf'
size=3mb,
maxsize=5mb,
filegrowth=1mb)
2.创建数据表并给表添加数据(20分)
use销售管理
go
createtable部门
(部门编号intprimarykey,
部门名称varchar(30)notnullconstraintUQ_DNameunique,
部门主管char(8),
备注varchar(50))
createtable员工
(员工编号intprimarykey,
姓名varchar(20)notnull,
性别char
(2)default'
男'
check(性别='
or性别='
女'
),
出生年月smalldatetime,
聘任日期smalldatetime,
工资moneycheck(工资between800and100000),
部门编号intforeignkey(部门编号)references部门(部门编号))
createtable供应商
(供应商编号intprimarykey,
供应商名称varchar(50)notnull,
联系人姓名char(8),
电话char(13)check(len(电话)>
=7andlen(电话)<
=13),
地址varchar(100),
"
E-mail"
varchar(30)check("
like'
%@%'
))
createtable客户
(客户编号intprimarykey,
公司名称varchar(50)notnull,
createtable商品
(商品编号intprimarykey,
商品名称varchar(50)notnull,
单价decimal(8,2)check(单价>
0),
库存量intcheck(库存量>
=0),
已销售量intcheck(已销售量>
=0))
createtable采购订单
(采购订单号intprimarykey,
商品编号intreferences商品(商品编号),
员工编号intreferences员工(员工编号),
供应商编号intreferences供应商(供应商编号),
订购数量int,
订购日期smalldatetimedefaultgetdate())
go
createtable销售订单
(销售订单号intprimarykey,
客户编号intreferences客户(客户编号),
表添加的数据如下图所示:
3.创建数据库各种对象(共25分)
a.创建试图(5分):
创建一个客户订购情况的视图,包括客户编号,公司名称,商品编号,商品名称,单价和订购数量,并对视图进行加密。
createview客户订购情况
withencryption
as
selecta.客户编号,公司名称,c.商品编号,商品名称,单价,订购数量
from客户ajoin销售订单asbona.客户编号=b.客户编号
join商品asconc.商品编号=b.商品编号
b.创建索引(5分):
在销售管理系统中,经常要按照客户名称查询信息,通过给客户表的公司名称创建一个唯一非聚集索引来提高查询速度。
Createuniqueindexix_cname
On客户(公司名称)
c.创建用户定义函数(5分):
创建标量函数,根据商品名称统计某种商品销售的次数
createfunction销售次数
(@商品名称varchar(50)='
路由器'
)
returnsint
begin
declare@销售次数int
select@销售次数=count(*)
from商品join销售订单
on商品.商品编号=销售订单.商品编号
where商品名称=@商品名称
return@销售次数
end
执行函数:
selectdbo.销售次数('
鼠标'
)as销售次数
selectdbo.销售次数(default)
d.创建存储过程(5分):
创建一个名为客户订购信息存储过程,用于查询指定客户的联系人姓名、联系方式、以及该公司订购产品的明细表。
createproc客户订购信息
(@客户名称varchar(50)='
通恒机械有限公司'
select公司名称,联系人姓名,商品名称,单价,订购数量,订购日期
from客户join销售订单
On客户.客户编号=销售订单.客户编号
join商品
where公司名称=@客户名称
执行输入参数为默认值的存储过程:
exec客户订购信息
执行带输入参数的存储过程:
exec客户订购信息'
三川实业有限公司
e.创建触发器(5分):
创建一个触发器实现当向销售订单表添加一条记录时,自动修改商品表的库存数量和已售数量。
createtrigger销售
on销售订单
afterinsert
update商品
set库存数量=库存数量-订购数量,
已售数量=已售数量+订购数量
f