《仓库管理系统数据库设计与开发》由会员分享,可在线阅读,更多相关《仓库管理系统数据库设计与开发(5页珍藏版)》请在金锄头文库上搜索。
1、仓库管理系统数据库设计与开发姓名:叶贝贝1.仓库管理系统需求分析仓库管理系统可以实现对货物的信息管理、客户的信息管理、采购入库管理、采购出库管理、综合查询及系统管理。用例图如下:2.学生管理系统数据库对象设计2.1表设计表2-1ADMIN表结构及其约束字段名数据类型长度约束说明idnumber11主码管理员编号usernamevarchar220not null管理员帐号passwordvarchar220not null管理员密码表2-2BUSINESS表结构及其约束字段名数据类型长度约束说明idnumber11主码公司编号bnamevarchar250not null公司名称baddrva
2、rchar2100not null公司地址bbankvarchar220not null公司开户银行bdepartvarchar220not null公司收款单位bcardvarchar220not null公司银行帐号bmanvarchar220not null公司联系人bjobvarchar220not null联系人职务bphonevarchar220not null公司电话bmobilevarchar220not null联系人手机bhphonenumber20not null联系人电话bplacevarchar2100not null公司通信地址bworkvarchar2200not
3、 null公司业务范围表2-3GOODS表结构及其约束字段名数据类型长度约束说明idnumber11主码货物编号gnamevarchar250not null货物名称gspecsvarchar220not null货物规格gplacevarchar220not null货物产地gcountnumber11not null现有数量gremarkvarchar2200not null备注表2-4INGOODS表结构及其约束字段名数据类型长度约束说明gidnumber11主码货物编号bidnumber11外码进货客户编号gnamevarchar250外码货物名称bnamevarchar250外码进货
4、客户innervarchar220not null入库签名gpricenumber11not null货物进价gspecsvarchar220not null货物规格gcountnumber11not null货物数量gtimenumber11not null进货时间gplacevarchar2100not null货物产地gshowvarchar2200产品说明表2-5OUTGOODS表结构及其约束字段名数据类型长度约束说明gidnumber11主码货物编号bidnumber11外码进货客户编号gnamevarchar250外码货物名称bnamevarchar250外码进货客户outerva
5、rchar220not null出库签名gpricenumber11not null货物进价gspecsvarchar220not null货物规格gcountnumber11not null货物数量gtimenumber11not null出库时间gplacevarchar2100not null货物产地gshowvarchar2200产品说明2.2序列设计为了方便产生顾客编号和商品编号,在数据库中分别用下列序列产生的相应编号(1) SEQ_BUSINESS:产生顾客编号,起始值为100000。(2) SEQ_GOODS:产生商品编号,起始值为100。2.3视图设计为了方便查询企业每种商品月
6、进货总量以及在入库和出库过程中的现有库存修改后的信息,创建下列视图。(1) 创建名为“BUSINESS_MONTH_GOODS”的视图,包括公司编号,公司名称,货物编号,货物名称及货物数量信息。(2) 创建名为“GOODS_LOCAL_COUNT”的视图,包括货物名称和货物数量信息2.4 PL/SQL功能模块设计利用PL/SQL程序创建下列各种数据对象。(1) 创建一个判断是否某个商品是否可以出库的存储过程(2) 创建一个判断该物品是否断货的函数3. 图书馆管理系统数据库对象创建3.1表的创建(1) 创建admin表Create table admin(Id number(11) primar
7、y key,Username varchar(20) not null,Password varchar(20) not null);(2) 创建business表Create table business(Id number(11) primary key,Bname varchar2(50) not null,Baddr varchar2(100) not null,Bbank varchar2(20) not null,Bdepart varchar2(20) not null,Bcard varchar2(20) not null,Bman varchar2(20) not null,
8、Bjob varchar2(20) not null,Bphone varchar2(20) not null,Bmobile varchar2(20) not null,Bhphone varchar2(20) not null,Bplace varchar2(100) not null,Bwork varchar2(200) not null);(3) 创建goods表Create table goods(Id number(11) primary key,Gname varchar2(50) not null,Gspecs varchar2(20) not null,Gplace var
9、char2(20) not null,Gcount number(11) not null,Gremark varchar2(200) not null);(4) 创建ingoods表Create table ingoods(Gid number(11) references goods(id),Bid number(11) references business(id),Gname varchar2(50) references goods(gname),Bname varchar2(50) references business(bname),Inner varchar2(20) not
10、null,Gprice number(11) not null,Gspecs varchar2(20) not null,Gcount number(11) not null,Gtime number(11) not null,Gplace varchar2(100) not null,Gshow varchar2(200),Primary key(gid,bid,gname,cname);(5) 创建outgoods表Create table outgoods(Gid number(11) references goods(id),Bid number(11) references busi
11、ness(id),Gname varchar2(50) references goods(gname),Bname varchar2(50) references business(bname),outer varchar2(20) not null,Gprice number(11) not null,Gspecs varchar2(20) not null,Gcount number(11) not null,Gtime number(11) not null,Gplace varchar2(100) not null,Gshow varchar2(200),Primary key(gid
12、,bid,gname,cname);3.2序列的创建(1) create sequence seq_business start with 1 increment by 100000;(2) Create sequence seq_goods start with 1 increment by 100;3.3视图的创建(1) 创建视图BUSINESS_MONTH_GOODSCreate or replace view business_month_goodsAsSelect bid,bname,gid,gname,sum(ingoods.gcount),month(gtime) from in
13、goods group by bid,bname,gid,gname,month(gtime);(2)创建视图“GOODS_LOCAL_COUNT”Create or replace view goods_local_countasSelect gname,sum(goods.gcount)+sum(ingoods.gcount)-sum(outgoods.gcount)From goods,ingoods,outgoodsGroup byGname;3.4PL/SQL程序设计(1) 创建一个某个商品是否可以出库的存储过程Create or replace procedure if_can_g
14、et_goods(g_gname varchar2(50),g_gcount number ,g_orcan out number)AsBeginSelect goods.gcount+ingoods.gcount-g_gcount into g_orcan from goods,ingoodsWhere goods.gname=g_gname and ingoods.gname=g_gname;If g_orcan=0 theng_orcan:=0;End if;End;(2) 创建一个判断该物品是否断货的函数Create or replace function if_not_have_goods(G_gname varchar2(50) return varchar2AsV_gid number;