商店进销存管理系统.docx
- 文档编号:17847433
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:327.74KB
商店进销存管理系统.docx
《商店进销存管理系统.docx》由会员分享,可在线阅读,更多相关《商店进销存管理系统.docx(27页珍藏版)》请在冰点文库上搜索。
商店进销存管理系统
1.题目要求及说明
题目要求
(1)根据题目要求调查分析一个具体的或模拟的实例;
(2)描述该实例的业务信息和管理工作的要求;
(3)列出实体、联系;
(4)指出实体和联系的属性;
(5)画出E-R图;
(6)将E-R图转换成关系模式,并注明主码和外码;
@
(7)建立数据字典;
(8)创建数据库。
题目:
某商店进销存管理系统
(1)实现商品类别、供货商、业务员信息管理;
(2)实现商品信息、仓库信息管理、仓库商品管理;
(3)实现商品验收入库、商品销售出库管理,入库和出库时自动修改对应商品的总库存和分库库存量(用触发器实现),另外验收或销售时一单可以验收或销售多种商品;
(4)实现转仓管理,转仓时自动修改转出仓库和转入仓库对应商品的数量(用触发器实现);
(5)创建存储过程统计指定时间段内各种商品的进货数量和销售数量;
`
(6)设商品的单位只能是‘只’、‘件’、‘箱’,创建规则进行限制;
(7)创建表间关系。
2.需求分析:
市场调查分析:
通过对现流行在市场的软件的调查,发现,现在市场上软件多是针对大客户,比较复杂,开发的过程比较复杂,比较昂贵,也不容易操作与维护,不能被广大的小企业或是超市,还有商店等使用,所以,我们抓住市场的这个空白区,去开发商店的进销存管理系统。
系统描述:
该系统主要是对中小型商店的进货、销售、库存管理等做出管理,基本实现了商店商品类别、供货商、业务员信息的管理;并用触发器和规则实现了系统的完整性和一致性的管理,在商品入库、出库和转库的过程中,能自动修改相应的数量,并用规则限制了商品的单位,只能是“只”、“件”、“箱”等功能。
基本满足设计题目的要求。
3.E-R图
—
实体与联系:
实体:
商品类别、供货商、业务员、商品、仓库
联系:
所属、供应、管理、库存、入库、出库、转库
属性:
商品类别(商品类别号,商品类别名)
供货商(供货商号,供货商名,供货商地址,联系电话)
业务员(业务员号,业务员名,性别)
商品(商品号,商品名,商品类别号,商品单位,商品价格,商品数量)
\
仓库(仓库号,仓库名,仓库地址)
库存(商品号,商品名,仓库号,仓库名,库存数量)
入库(商品号,商品名,仓库号,仓库名,入库数量,入库时间)
出库(商品号,商品名,仓库号,仓库名,出库数量,出库时间)
转库(商品号,商品名,原仓库号,目标仓库号,转库数量,转库时间)
E-R图
(1)局部ER图:
%
(2)全局ER图:
关系模式
(1)若实体间的联系是1:
1联系,可以在两个实体类型转换成两个关系模式的任意一个关系式的属性中,加入另一个关系模式的主码和联系类型的属性。
(2)若实体间的联系是1:
n联系,则在n端实体类型转换成的关系模式中,加入1端实体类型转换成的关系模式的主码和联系类型的属性。
(3)若实体间的联系是m:
n联系,则将联系类型也转换成关系模式,其属性为两端实体类型的主码加上联系类型的属性,而该主码为两端实体主码的组合。
根据以上规则,本系统的E-R模型向关系模型转换如下(主码用下横线标出):
具体图示如下:
商品类别表(商品类别号,商品类别名)
供货商表(供货商号,供货商名,供货商地址,联系电话)
业务员表(业务员号,业务员名,性别)
仓库表(仓库号,仓库名,仓库地址)
商品表(商品号,商品名,商品类别号,商品单位,商品单价,商品数量)
库存表(商品号,仓库号,商品名,仓库名,库存数量)
入库表(商品号,仓库号,商品名,仓库名,入库数量,入库时间,业务员号)
出库表(商品号,仓库号,商品名,仓库名,出库数量,出库时间,业务员号)
)
转库表(商品号,商品名,原仓库编号,目标仓库编号,转库数量,转库时间,业务员号)
4.数据字典
表1商品类别表
列名
数据类型
数据长度
为空否
主键
$
商品类别号
Char
10
×
商品类别名
Char
20
。
√
表2供货商表
列名
数据类型
数据长度
为空否
|
主键
供货商号
Char
10
×
供货商名
Char
》
20
√
供货商地址
Char
30
√
^
联系电话
char
13
√
表3业务员表
列名
)
数据类型
数据长度
为空否
主键
业务员号
char
10
×
·
业务员名
Char
8
√
性别
Char
¥
2
√
表4仓库表
列名
数据类型
数据长度
;
为空否
主键
仓库编号
char
10
×
仓库名
—
Char
20
√
仓库地址
char
30
√
)
表5商品表
列名
数据类型
数据长度
为空否
主键
!
商品号
Char
10
×
商品名
Char
20
\
√
商品类别号
Char
10
√
商品单位
;
Char
2
√
商品价格
float
8
√
.
商品数量
int
4
√
表6库存表
(
列名
数据类型
数据长度
为空否
主键
商品号
Char
10
×
商品名
Char
20
√
仓库号
}
Char
10
×
库存数量
int
4
√
》
表7入库表
列名
数据类型
数据长度
为空否
主键
;
商品编号
Char
10
×
商品名称
Char
20
】
√
仓库号
Char
10
×
仓库名
…
char
20
√
入库数量
Int
4
√
入库时间
Datetime
8
√
业务员号
char
]
10
√
表8出库表
列名
数据类型
数据长度
:
为空否
主键
商品号
Char
10
×
商品名称
{
Char
20
√
仓库号
Char
10
×
,
仓库名
char
20
√
出库数量
Int
,
4
√
出库时间
Datetime
8
√
·
业务员号
char
10
√
表9转库表
列名
@
数据类型
数据长度
为空否
主键
商品编号
char
10
×
|
商品名称
Char
20
√
原仓库编号
Char
#
10
√
目标仓库编号
Char
10
√
)
转库数量
Int
4
√
转库时间
datetime
8
—
√
业务员号
char
10
√
]
5.程序实现
程序
/*创建数据库*/
createdatabase商店进销存管理系统
on
(name=商店进销存管理系统_data,
filename='d:
\SQLServer\商店进销存管理系统',
size=1MB,
;
maxsize=5MB,
filegrowth=1MB
)
logon
(
name=商店进销存管理系统_log,
filename='d:
\SQLServer\商店进销存管理系统',
size=1MB,
%
maxsize=2MB,
filegrowth=1MB
)
/*创建商品类别表并插入数据*/
use商店进销存管理系统
go
createtable商品类别表
|
(
商品类别号char(10)primarykey,
商品类别名char(20)
)
go
insertinto商品类别表values('101','饮料类')
insertinto商品类别表values('102','笔类')
insertinto商品类别表values('103','酒类')
,
insertinto商品类别表values('104','玩具宠物类')
insertinto商品类别表values('105','食品类')
insertinto商品类别表values('106','服装类')
go
select*from商品类别表
go
/*创建供货商表并插入数据*/
;
use商店进销存管理系统
go
createtable供货商表
(
供货商号char(10)primarykey,
供货商名char(20),
供货商地址char(30),
供货商电话char(13)
:
)
go
insertinto供货商表values('GHS101','家乐福','昆明','')
insertinto供货商表values('GHS102','沃尔玛','昆明','')
insertinto供货商表values('GHS103','福多多','北京','')
insertinto供货商表values('GHS104','天力','重庆','')
insertinto供货商表values('GHS105','华联','上海','')
insertinto供货商表values('GHS106','金方','深证','')
)
go
select*from供货商表
go
/*创建业务员表并插入数据*/
use商店进销存管理系统
go
createtable业务员表
;
(
业务员号char(10)primarykey,
业务员名char(8),
性别char
(2)
)
go
insertinto业务员表values('YWY101','李琴','女')
insertinto业务员表values('YWY102','王华','男')
@
insertinto业务员表values('YWY103','方芳','女')
insertinto业务员表values('YWY104','刘芳','女')
insertinto业务员表values('YWY105','思源','女')
insertinto业务员表values('YWY106','高竹','男')
insertinto业务员表values('YWY107','张瑞','女')
go
select*from业务员表
go
】
/*创建仓库表并插入数据*/
use商店进销存管理系统
go
createtable仓库表
(
仓库号char(10)primarykey,
仓库名char(20),
|
)
go
insertinto仓库表values('CKH101','仓库一号')
insertinto仓库表values('CKH102','仓库二号')
insertinto仓库表values('CKH103','仓库三号')
insertinto仓库表values('CKH104','仓库四号')
insertinto仓库表values('CKH105','仓库五号')
insertinto仓库表values('CKH106','仓库六号')
¥
go
select*from仓库表
go
/*创建商品表并插入数据*/
use商店进销存管理系统
go
createtable商品表
;
(
商品号char(10)primarykey,
商品名char(20),
商品类别号char(10)foreignkeyreferences商品类别表(商品类别号),
商品单位char
(2),
商品价格float,
商品数量int
)
]
go
createrule单位限制as@valuein('只','件','箱')
go
execsp_bindrule'单位限制','商品表.商品单位'
go
insertinto商品表values('SP101','鲜橙多','101','箱',,100)
insertinto商品表values('SP102','中性笔','102','只',,100)
insertinto商品表values('SP103','青醇','103','箱',,200)
>
insertinto商品表values('SP104','土豆片','105','箱',,100)
insertinto商品表values('SP105','方便面','105','箱',,100)
insertinto商品表values('SP106','衣服','106','件',,100)
insertinto商品表values('SP107','玩具狗','104','只',,100)
go
select*from商品表
go
《
/*创建库存表并插入数据*/
use商店进销存管理系统
go
createtable库存表
(
商品号char(10)foreignkeyreferences商品表(商品号),
商品名char(20),
仓库号char(10)foreignkeyreferences仓库表(仓库号),
%
库存数量int,
constraint库存primarykey(商品号,仓库号)
)
go
insertinto库存表values('SP101','鲜橙多','CKH101',70)
insertinto库存表values('SP101','鲜橙多','CKH102',30)
insertinto库存表values('SP102','中性笔','CKH102',50)
insertinto库存表values('SP102','中性笔','CKH103',50)
"
insertinto库存表values('SP105','方便面','CKH103',50)
insertinto库存表values('SP105','方便面','CKH104',50)
insertinto库存表values('SP107','玩具狗','CKH104',50)
insertinto库存表values('SP107','玩具狗','CKH106',50)
insertinto库存表values('SP103','青醇','CKH105',67)
insertinto库存表values('SP103','青醇','CKH101',133)
insertinto库存表values('SP104','土豆片','CKH103',35)
insertinto库存表values('SP104','土豆片','CKH105',65)
<
insertinto库存表values('SP106','衣服','CKH106',30)
insertinto库存表values('SP106','衣服','CKH103',70)
go
select*from库存表
go
/*创建入库表并插入数据*/
use商店进销存管理系统
~
go
createtable入库表
(
商品号char(10)foreignkeyreferences商品表(商品号),
商品名char(20),
仓库号char(10)foreignkeyreferences仓库表(仓库号),
仓库名char(20),
入库数量int,
、
入库时间datetime,
业务员号char(10),
constraint入库primarykey(商品号,仓库号)
)
Go
/*创建商品入库触发器*/
createtriggerT_入库on入库表forinsert
:
as
declare@数量int
select@数量=入库数量from入库表
update库存表set库存数量=库存数量+@数量
where库存表.商品号=(select商品号frominserted)and库存表.仓库号=(select仓库号frominserted)
update商品表set商品数量=商品数量+@数量
where商品表.商品号=(select商品号frominserted)
go
:
select*from库存表
go
insertinto入库表values('SP101','鲜橙多','CKH101','仓库一号',10,'2007-10-15','YWY101')
insertinto入库表values('SP102','中性笔','CKH102','仓库二号',20,'2007-10-19','YWY102')
insertinto入库表values('SP103','青醇','CKH105','仓库五号',20,'2007-10-16','YWY103')
insertinto入库表values('SP104','土豆片','CKH103','仓库三号',30,'2007-11-20','YWY104')
insertinto入库表values('SP105','方便面','CKH103','仓库三号',80,'2007-9-28','YWY105')
insertinto入库表values('SP106','衣服','CKH106','仓库六号',30,'2007-11-2','YWY106')
{
insertinto入库表values('SP107','玩具狗','CKH104','仓库四号',40,'2007-11-6','YWY107')
go
select*from库存表
go
/*创建出库表*/
use商店进销存管理系统
、
go
createtable出库表
(
商品号char(10)foreignkeyreferences商品表(商品号),
商品名char(20),
仓库号char(10)foreignkeyreferences仓库表(仓库号),
仓库名char(20),
出库数量int,
、
出库时间datetime,
业务员号char(10),
constraint出库primarykey(商品号,仓库号)
)
Go
/*创建商品出库触发器*/
createtriggerT_出库on出库表forinsert
'
as
declare@数量int
select@数量=出库数量from出库表
update库存表set库存数量=库存数量-@数量
where库存表.商品号=(select商品号frominserted)and库存表.仓库号=(select仓库号frominserted)
update商品表set商品数量=商品数量-@数量
where商品表.商品号=(select商品号frominserted)
go
】
select*from库存表
go
insertinto出库表values('SP101','鲜橙多','CKH101','仓库一号',20,'2007-10-26','YWY101')
insertinto出库表values('SP102','中性笔','CKH102','仓库二号',25,'2007-10-29','YWY102')
insertinto出库表values('SP103','青醇','CKH105','仓库五号',30,'2007-10-22','YWY103')
insertinto出库表values('SP104','土豆片','CKH103','仓库三号',60,'2007-11-29','YWY104')
insertinto出库表values('SP105','方便面','CKH103','仓库三号',80,'2007-10-10','YWY105')
insertinto出库表values('SP106','衣服','CKH106','仓库六号',25,'2007-11-15','YWY106')
insertinto出库表values('SP107','玩具狗','CKH104','仓库四号',60,'2007-11-26','YWY107')
go
select*from库存表
go
/*创建转库表*/
use商店进销存管理系统
go
createtable转库表
(
商品号char(10)primarykey,
商品名char(20),
原仓库号char(10),
目标仓库号char(10),
转库数量int,
转库时间datetime,
业务员号char(10)
)
go
/*创建商品转库触发器*/
createtriggerT_转库on转库表forinsert
as
declare@转库数量int
select@转库数量=转库数量from转库表
update库存表set库存数量=库存数量-@转库数量
where库存表.仓库号=(select原仓库号frominserted)and库存表.商品号=(select商品号frominserted)
update库存表set库存数量=库存数量+@转库数量
where库存表.仓库号=(select目标仓库号frominserted)and库存表.商品号=(select商品号frominserted)
go
select*from库存表
go
insertinto转库表values('SP101','鲜橙多','CKH101','CKH102',12,'2007-10-20','YWY101')
insertinto转库表values('SP102','中性笔','CKH102','CKH103',11,'2007-10-19','YWY102')
insertinto转库表values('SP103','青醇','CKH105','CKH101',5,'2007-10-22','YWY103')
insertinto转库表values('SP104','土
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商店 进销存 管理 系统