课程设计题目:
仓库管理系统数据库的设计与实现
专 业: 软件工程 班 级: 学 号: 姓 名: 指导教师:
2011年11月23日
目 录
一、 实验目的 ·········································(3)
二、 设计要求 ··········································(3)
三、 实验思路 ··········································(3)
四、 实验过程(源代码)·····································(6)
五、 实验总结 ··········································(19)
六、 心得体会 ··········································(20)
一、目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
二、课程设计要求:
1.对各个系统进行系统功能需求分析
描述:设计一个仓库管理系统,实现下列功能:
1. 零件信息登记(包括种类,名称和库存数量等信息); ○
2. 零件进库登记(包括种类,名称和库存数量等信息); ○
3. 零件出库登记(包括种类,名称和库存数量等信息); ○
三、实现思路
①需求分析: 由于货物的种类数量的纷繁复杂,比较难管理,给工作人员的工作带来诸
多不便.此系统的开发就是专门解决工作人员在这些烦琐的问题。此系统适用于仓库,它是比较完善的系统管理软件。此系统的采用方便了仓库管理人员对仓库的管理,对管理人员的工作起到重要作用。通过本系统软件,能帮助工作人员利用计算机,快速方便的对仓库的货物进行管理、输入、输出、查找等操作,将货物的管理具体化、直观化、合理化。 通过该系统所记录的数据,可以使仓库管理者对货物的进出情况管理的更清楚,使仓库管理系统更完善,减轻工作人员的工作负担,使工作简化,从而对货物进行更井井有条的管理。 主要功能如下:
1.零件信息登记 2.零件信息修改 3.零件信息删除 4.零件信息查询 5.入库信息登记 6.入库操作 7.入库信息修改 8入库信息删除 9.入库信息查询 10.出库信息登记 11.出库库操作 12.出库信息修改 13.出库信息删除 14.出库信息查询 15.显示触发器 16.各功能创建视图查询
2E-R图: ○
入库价格 产品编号 入库时间 产品名称 入库信息 入库价格 货主名称 入库 货主联系电话 产品名称 种类 仓库零件信息 入库价格 产品编号 出库价格 库存 出库 客户姓名 种类 出库信息 客户姓名 出库时间 产品名称 出库时间 出库价格
3创建表: ○
1.仓库零件信息表(产品编号 【主键】,名称 【不为空】,种类【不为空】,入库价格【为空】,出库价格【为空】,库存【为空】) 2.入库信息表(产品编号【主键】,产品名称【不为空】,货主名称【不为空】,入库数量【为空】,入库价格【为空】,货主联系电话【为空】) 3.出库信息表(产品编号【主键】,产品名称【不为空】,客户名称【不为空】,出库数量【为空】,出库价格【为空】,客户联系电话【为空】)
具体操作:
仓库零件信息表创建:
create table 仓库零件信息表 (
产品编号 int not null primary key, 产品名称 varchar(20)not null, 种类 varchar(15)not null, 入库价格 int, 出库价格 int, 库存 int ) 列名 字段类型 产品编号 产品名称 种类 入库价格 出库价格 库存
入库信息表创建
create table 入库信息表 (
产品编号 int not null primary key, 产品名称 varchar(20)not null, 货主名称 varchar(20) not null, 入库数量 int, 入库价格 int,
货主联系电话 int, ) 列名 字段类型 int Varchar Varchar Int Int Int 长度 10 10 10 10 10 200 允许为空 Primary key Not null Not null Not null Not null Not null 长度 允许为空 产品编号 产品名称 货主名称 入库数量 入库价格 货主联系电话 Int Varchar Varchar Int Int Int 10 20 20 13 10 20 Not null Not null Not null Not null Not null Y 出库信息表创建
create table 出库信息表 (
产品编号 int not null primary key, 产品名称 varchar(20)not null, 客户名称 varchar(20) not null, 出库数量 int, 出库价格 int,
客户联系电话 int, ) 列名 字段类型 长度 允许为空 产品编号 int 20 primary key 产品名称 varchar 20 not null 客户名称 varchar 20 not null 出库数量 int, 20 Y 出库价格 int, 20 Y 客户联系电话 int, 20 Y
四、实现过程 产品编号 种类 产品名称 入库价格 出库价格 库存 1 电脑零件 CPU 1500 1800 20 2 电视零件 CPU 1000 1200 20 3 电脑零件 显示屏 1300 1500 20 4 电脑零件 显卡 800 1000 20 ---仓库管理系统数据库查询与设计---
/*************仓库零件信息表创建******************/ create table 仓库零件信息表 (
产品编号 int not null primary key, 名称 varchar(20)not null, 种类 varchar(15)not null, 入库价格 int,
出库价格 int, 库存 int )
insert into 仓库零件信息表 values (1,'电脑零件','CPU',1500,1800,20) insert into 仓库零件信息表 values (2,'电视零件','CPU',1000,1200,20) insert into 仓库零件信息表 values (3,'电脑零件','显示屏',1300,1500,20) insert into 仓库零件信息表 values (4,'电脑零件','显卡',800,1000,20)
------drop table 仓库零件信息表
实现如下:
/*************入库信息表创建***************/ create table 入库信息表 (
产品编号 int not null ,
产品名称 varchar(20)not null, 货主名称 varchar(20) not null, 入库数量 int, 入库价格 int, 货主联系电话 int )
insert into 入库信息表 values (1,'电脑零件','张三',10,1500,123456) insert into 入库信息表 values (2,'电视零件','李四',10,1000,234567) insert into 入库信息表 values (3,'电脑零件','王二',10,1300,7758520) insert into 入库信息表 values (4,'电脑零件','阿三',10,800,3344334)
--drop table 入库信息表 实现如下:
/*************出库信息表创建******************/ create table 出库信息表
(
产品编号 int not null primary key, 产品名称 varchar(20)not null, 客户名称 varchar(20) not null, 出库数量 int, 出库价格 int, 客户联系电话 int )
insert into 出库信息表 values (1,'电脑零件','胡二',10,1800,222222) insert into 出库信息表 values (2,'电视零件','刘一',10,1500,4444444) insert into 出库信息表 values (3,'电脑零件','钟三',10,1000,55555) ----drop table 出库信息表 实现如下:
--查询所建的表
select * from 仓库零件信息表 select * from 入库信息表 select * from 出库信息表
/*************索引创建******************/
create unique index 货主索引 on 入库信息表(货主联系电话) -- drop index 入库信息表.货主
create unique index 零件索引 on 仓库零件信息表(产品编号) -- drop index 仓库零件信息表.零件
create unique index 客户索引 on 出库信息表(客户联系电话) -- drop index 出库信息.客户
---创建视图
create view vi_0 as
select 仓库零件信息表.产品编号,产品名称,货主名称,入库数量,入库信息表.入库价格,货主联系电话 ,出库价格, 种类,库存 from 入库信息表 ,仓库零件信息表
where 入库信息表.产品编号=仓库零件信息表.产品编号 --该视图为联系入库信息表和仓库零件信息表的查询 实现如下:
----------零件信息登记---------- create procedure seve (
@产品编号 int , @名称 varchar(20), @种类 varchar(15), @入库价格 int, @出库价格 int, @库存 int ) as
insert into 仓库零件信息表 values (@产品编号,@名称,@种类,@入库价格,@出库价格,@库存)
exec seve @产品编号=11,@名称='AMD',@种类='显卡',@入库价格=900,@出库价格=1100,@库存=30 --查看插入产品编号为11的信息在原有零件中 实现如下:
---------零件信息修改----------- create procedure pro_update (
@产品编号 int , @名称 varchar(20), @种类 varchar(15), @入库价格 int, @出库价格 int, @库存 int ) as
update 仓库零件信息表
set 名称=@名称,种类=@种类,入库价格=@入库价格,出库价格=@出库价格,库存=@库存
where 产品编号=@产品编号 update 出库信息表
set 产品名称=@名称,出库价格=@出库价格 where 产品编号=@产品编号 update 入库信息表
set 产品名称=@名称,入库价格=@入库价格 where 产品编号=@产品编号
exec pro_update @产品编号=4,@名称='修改',@种类='已修改',@入库价格=500,@出库价格=700,@库存=25 --查看产品编号为4的修改情况 实现如下:
----------零件信息删除-------------- create procedure pro_delete (
@产品编号 int ) as delete
from 仓库零件信息表
where 产品编号=@产品编号
exec pro_delete @产品编号=11 实现如下:
---------零件信息查询--------- create procedure pro_select (
@产品编号 int )
as
select *
from 仓库零件信息表
where 产品编号=@产品编号
exec pro_select @产品编号=1 --查询产品编号为1的信息 实现如下:
----------入库信息表登记------------
create procedure pro_1 (
@产品编号 int,
@产品名称 varchar(20), @货主名称 varchar(20), @入库数量 int, @入库价格 int, @货主联系电话 int ) as
insert into 入库信息表 values (@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话)
exec pro_1 @产品编号=5,@产品名称='AMD',@货主名称='小二',@入库数量=20,@入库价格=900,@货主联系电话=767876 --登记产品编号为5的信息查看 实现如下:
---------------入库操作------------- create proc pro_7111 (
@产品编号 int,
@产品名称 varchar(20),
@货主名称 varchar(20), @入库数量 int, @入库价格 int,
@货主联系电话 int , @出库价格 int, @种类 varchar(12)) as
if ((select 产品编号 from 仓库零件信息表 where 产品编号=@产品编号) is not null) --如果原有产品在仓库中存在 则执行编号为5的,没有则执行else语句 begin
update 仓库零件信息表 set 库存=库存+@入库数量 where 产品编号=@产品编号
insert into 入库信息表 values (@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话) end else begin
insert into 入库信息表 values (@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话)
insert into 仓库零件信息表 values (@产品编号,@产品名称,@种类,@入库价格,@出库价格,@入库数量) end
exec pro_7111 @产品编号=5,@产品名称='ss',@货主名称='ww',@入库数量=31,@入库价格=1500,@货主联系电话=3232323, @出库价格=2323, @种类='fds' --如果原有仓库有的产品,则插入此行,查看产品编号为5的数量变化 实现如下:
exec pro_711 @产品编号=12,@产品名称='ss',@货主名称='ww',@入库数量=31,@入库价格=1500,@货主联系电话=3232323, @出库价格=2323, @种类='fds'
--如果原有仓库没有的产品,则插入此行,查看产品编号为12的数量变化,重新查看仓库的数量 实现如下:
-----------入库信息修改----------- create procedure pro_2 (
@产品编号 int,
@产品名称 varchar(20), @货主名称 varchar(20), @入库数量 int, @入库价格 int,
@货主联系电话 int ) as
update 入库信息表
set 产品名称=@产品名称,货主名称=@货主名称,入库数量=@入库数量,入库价格=@入库价格,货主联系电话=@货主联系电话 where 产品编号=@产品编号 update 出库信息表
set 产品名称=@产品名称 where 产品编号=@产品编号 update 仓库零件信息表
set 名称=@产品名称,入库价格=@入库价格 where 产品编号=@产品编号 select *
from 入库信息表
exec pro_2 @产品编号=12,@产品名称='修改',@货主名称='已修改',@入库数量=20,@入库价格=900,@货主联系电话=767876
-- 利用存储过程 查看产品编号为12的修改情况 实现如下:
--------------入库信息删除------------ create proc pro_3 (
@产品编号 int ) as
delete
from 入库信息表
where 产品编号=@产品编号
exec pro_3 @产品编号=4 实现如下:
--------------入库信息查询-------------- create procedure pro_42 (
@产品编号 int ) as
select *
from 入库信息表
where 产品编号= @产品编号
exec pro_42 @产品编号=1 实现如下:
-------------出库信息登记------------ create procedure pro_5 (
@产品编号 int ,
@产品名称 varchar(20), @客户名称 varchar(20), @出库数量 int, @出库价格 int, @客户联系电话 int ) as
insert into 出库信息表 values (@产品编号,@产品名称,@客户名称,@出库数量,@出库价格,@客户联系电话)
exec pro_5 @产品编号=4,@产品名称='AMD',@客户名称='小三',@出库数量=10,@出库价格=1100,@客户联系电话=98766 --登记编号为5的产品出库情况 实现如下:
-------------出库操作------------- create procedure pro_111 (
@产品编号 int ,
@产品名称 varchar(20), @出库价格 int,
@客户名称 varchar(20), @出库数量 int, @客户联系电话 int ) as
if ((select 产品编号 from 仓库零件信息表 where 产品编号=@产品编号)is null) print '仓库没有该货物' --如果原有仓库没有客户需要的产品 直接执行编号为8的语句插入 如果有则执行else语句 查看出库后剩余的产品数量 执行编号为4的语句 else -- begin
insert into 出库信息表 values(@产品编号,@产品名称,@客户名称,@出库数量,@客户名称,@客户联系电话) update 仓库零件信息表
set 库存=库存-@出库数量
where 仓库零件信息表.产品编号=@产品编号 end
exec pro_111 @产品编号=8,@产品名称='ss',@客户名称='123',@出库数量=31,@出库价格=1500,@客户联系电话=3232323
--如果原有仓库没有产品编号为8的 执行此行 实现如下:
exec pro_111 @产品编号=4,@产品名称='ss',@客户名称='123',@出库数量=31, @出库价格=2323,@客户联系电话=3232323
--如果原有仓库有产品编号为4的 执行此行查询 实现如下:
------------出库信息修改---------------- create procedure pro_6 (
@产品编号 int ,
@产品名称 varchar(20), @客户名称 varchar(20), @出库数量 int, @出库价格 int,
@客户联系电话 int ) as
update 入库信息表
set 产品名称=@产品名称 where 产品编号=@产品编号 update 出库信息表
set 产品名称=@产品名称,客户名称=@客户名称,出库数量=@出库数量,出库价
格=@出库价格,客户联系电话=@客户联系电话 where 产品编号=@产品编号 update 仓库零件信息表
set 名称=@产品名称,出库价格=@出库价格 where 产品编号=@产品编号
exec pro_6 @产品编号=5,@产品名称='修改',@客户名称='已修改',@出库数量=10,@出库价格=1100,@客户联系电话=98766 --如果需要修改出库的产品信息 执行编号为5的 实现如下:
------------出库信息删除-------------- create proc pro_7 (
@产品编号 int ) as
delete
from 出库信息表
where 产品编号=@产品编号
exec pro_3 @产品编号=3 实现如下:
--------------出库信息查询--------------
create procedure pro_8 --drop procedure pro_8 (
@产品编号 int )
as
select *
from 出库信息表
where 产品编号=@产品编号
exec pro_8 @产品编号=1 实现如下:
---------------显示触发器-------------在执行存储过程之前 执行触发器 方便查看零件入库出库的更新添加修改删除 create trigger tri_1 on 仓库零件信息表 for insert as
select *
from 仓库零件信息表
create trigger tri_2 on 仓库零件信息表 for delete as
select *
from 仓库零件信息表
create trigger tri_3 on 仓库零件信息表 for update as
select *
from 仓库零件信息表
create trigger tri_4 on 入库信息表 for insert as
select *
from 入库信息表
create trigger tri_5 on 入库信息表
for delete as
select *
from 入库信息表
create trigger tri_6 on 入库信息表 for update as
select *
from 入库信息表
create trigger tri_7 on 出库信息表 for insert as
select *
from 出库信息表
create trigger tri_8 on 出库信息表 for delete as
select *
from 出库信息表
create trigger tri_9 on 出库信息表
for update as
select *
from 出库信息表
五、实验总结
此代码大部分功能以实现,但还有不足,代码不够简单。此次的设计是1个新的体验、新的挑战,我在此过程中不但应用了所学的知识,而且还不断的学习新的知识、工具,以完成设计的需要,在设计的过程中我深深体会到作为1个学习计算机专业的人士,为了实现1个模块的代码、为了1个设计的实现思想、经常绞尽脑汁来达到设计所要达到的目的,虽然我的基础知识不够扎实,但是我在此期间积累了许多宝贵的经验,这都是我以后走上工作岗位的巨大的财富。
六、心得体会
从课程的学习和实验当中我了解到,表是数 据库数据当中最重要的一个数据对象,表建立的好坏直接关系到数据库的 实际使用效果,表当中的内容越具体对表越有利,同时对数据库的各种应 用也有着各种各样的便利,但是表的内容也不能过于的繁琐,当然,这些 也只能在今后的实际使用当中多多的应用,才能加深和理解如何对表进行 规划才更有利于使用和查询。在数据库中,数据内容的查询可以使用查询 语句的方法查询,也可以使用视图操作的方法进行查询,使用视图操作的 方法不仅可以简化数据操作,同时还可以检索数据,在查询时还能向基表 当中添加、修改和删除数据,能有效的提高数据库可用性和安全性。 SQL Server 2000 的学习是在老师的悉心教导和上机实验实践当中度 过的,经过短暂的学习,让我学会了很多知识,对于我今后的人生和工作 有很多有用有帮助的地方,感谢老师的教导,让我又多掌握了一项专业的 技术,我会在今后更加努力的学习这方面的专业技术知识,勤于实践、不 断提高,以适应时代的发展,更好的把握未来。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务