商店进销存管理系统数据库设计Word格式文档下载.docx
《商店进销存管理系统数据库设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《商店进销存管理系统数据库设计Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
c.本项目开发者:
吴静,杜茂坤
d.本项目用户:
商店员工
1.3参考资料
[1]MarkPriestley.面向对象设计uml实践[M].龚晓庆,卞雷等译.北京:
清华大学出版社,2005.
[2]郑人杰,马素霞,殷人昆.软件工程概论[M].北京:
机械工业出版社,2011.
[3]王珊,萨师煊.数据库系统概论概论[M].北京:
高等教育出版社,2005.
[4]卢瀚,王春斌.javaweb开发实战1200例[M].北京:
清华大学出版社,2011.
2.结构设计
2.1界面设计
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成进货、销售、库存管理的全过程。
系统的登录界面如图2.1。
图2.1系统登陆界面
系统首页如图2.2所示。
图2.2系统首页
商品添加页面如图2.3所示。
图2.3商品添加页面
商品查询界面如图2.4所示。
图2.4商品查询界面
密码修改界面如图2.5所示。
图2.5密码修改界面
2.2逻辑结构设计
(1)局部E-R图
商品及商品属性之间存在属于的关系,如图2.6所示。
图2.6
商品、供应商及之间存在着供应入库的关系,E-R图如图2.7所示。
图2.7
商品和仓库之间存在图2.8所示关系。
图2.8
商品和顾客之间存在销售的关系,如图2.9所示。
图2.9
(2)全局E-R图
图2.10
2.3关系模型设计
商品类型(类型号,类型名,说明)
商品(商品号,商品名,类型号,单价,单位,规格,说明)
供应商(供应商号,供应商全称,地址,联系人,电话,电子邮箱,开户银行,开户账号)
顾客(顾客号,顾客全称,地址,联系人,电话,电子邮箱,开户银行,开户账号)
业务员(业务员号,工资,登陆名,密码)
仓库(仓库号,面积,单位)
入库单(供应单号,供应商号,业务员号,应付,实付,未付,是否付清,日期)
入库详单(商品号,仓库号,供应单号,数量,金额)
销售单(流水号,业务员,应收,实收,未收,是否结清,销售日期)
销售详单(商品号,流水号,数量,金额)
转仓详单(转仓单号,商品号,转出仓库,转入仓库)
库存(仓库号,商品号,库存量)
2.4关系图
(1)入库管理关系图
图2.11
(2)销售管理关系图
.
图2.12
(3)转仓关系图
图2.13
2.5物理结构设计
表2-1splb(商品类别)
字段名
数据类型
长度
说明
意义
ID
varchar
20
Primarykey
类型号
lxname
Notnull
类型名
memo
100
表2-2tb_brand(商品)
商品号
spname
Notnul
商品名
splb
10
Foreignkey
dj
money
notnull
单价
dw
Varchar
单位
gg
50
规格
表2-3tb_ck(仓库)
Int
仓库号
ckmj
Float
面积
mjdw
6
表2-4tb_supplier(供应商)
供应商编号
gysname
供应商全称
address
地址
Lxr
联系人
lxrtell
联系电话
khyh
开户银行
gysemail
电子信箱
表2-5tb_customer(顾客)
客户编号
khname
客户全称
表2-6tb_user(业务员)
业务员编号
username
40
用户名
Password
密码
表2-7tb_rkd(入库单)
varcahr
供应单号
GysID
供应商号
czy
操作员
yf
Money
应付
sf
实付
Wf
未付
whether
2
是否付清
rkdate
datetime
验收日期
表2-8tb_ruku(供应详单)
spID
Varchar
ckID
sl
数量
Je
金额
Rkid
入库单号
表2-9tb-selld(销售单)
流水号
kyID
客户号
ys
应收
ss
实收
Ws
未收
jq
是否结清
xsdate
date
销售日期
表2-10tb_sell(销售详单)
Selld
int
je
表2-11tb_zc(转仓单)
主键
Zcck
转出库编号
Zrck
转入库编号
表2-12tb_kc(库存)
kcSl
库存量
kcje
3存储过程脚本
(1)创建存储过程统计指定时间段内各种商品的进货数量
createprocpro_rksl
@starttimedatetime,@endtimedatetime,@spidvarchar(20),@totalslintoutput,@totaljemoneyoutput
as
select@totalsl=sum(sl),@totalje=sum(je)fromtb_ruku,tb_rkdwheretb_rkd.ID=tb_ruku.rkdandrkdatebetween@starttimeand@endtimegroupbyspidhavingspid=@spid
(2)创建存储过程统计指定时间段内各种商品的销售数量
createprocpro_xssl
@starttimedatetime,@endtimedatetime,@spidvarchar(20),@totalslintoutput,@totaljemoneyoutput
select@totalsl=sum(sl),@totalje=sum(je)fromtb_sell,tb_selldwheretb_selld.ID=tb_sell.selldandxsdatebetween@starttimeand@endtimegroupbyspidhavingspid=@spid
4触发器脚本
(1)当商品入库时自动增加该商品的库存量
createtriggertri_sprk
ontb_rukuforinsert
asdeclare@oldslint,@oldjemoney,@spidvarchar(20),@ckidint,@ckid1int,@rkslint,@rkjemoney
select@ckid1=0
select@spid=spid,@ckid=ckid,@rksl=sl,@rkje=jefrominserted
select@ckid1=ckidfromtb_kucunwherespid=@spid
if@rksl>
begin
if@ckid=@ckid1
select@oldsl=kcsl,@oldje=kcjefromtb_kucunwherespid=@spid
updatetb_kucunsetkcsl=@oldsl+@rksl,kcje=@oldje+@rkjewherespid=@spid
return
end
if@ckid1=0
begin
insertintotb_kucunvalues(@spid,@ckid,@rksl,@rkje)
end
rollbacktransaction
(2)当商品销售时自动修改各仓库的库存量
createtriggertri_spxs
ontb_sellforinsert
asdeclare@oldslint,@spidvarchar(11),@xsslint,@oldjemoney,@xsjemoney
select@spid=spid,@xssl=sl,@xsje=jefrominserted
select@oldsl=kcsl,@oldje=kcjefromtb_kucunwherespid=@spid
if@xssl>
0and@oldsl>
@xssl
begin
updatetb_kucunsetkcsl=@oldsl-@xssl,kcje=@oldje-@xsjewherespid=@spid
return
end
rollbacktransaction
(3)当商品转仓时自动修改各仓库的库存量
createtriggertri_spzc
ontb_zcforinsert
asdeclare@kcslint,@kcjemoney,@zcckint,@zrckint,@spidvarchar(20)
select@spid=spid,@zcck=zcck,@zrck=zrckfrominserted
select@kcsl=kcsl,@kcje=kcjefromtb_kucunwherespid=@spidandckid=@zcck
if@kcsl>
deletefromtb_kucunwherespid=@spidandckid=@zcck
insertintotb_kucunvalues(@spid,@zrck,@kcsl,@kcje)
5数据库恢复与备份
(1)数据库的完全备份
backupdatabasedb_shopping
todisk='
E:
\备份数据库\fullback_shop'
withinit
(2)数据库的恢复
restoredatabasedb_shopping
fromdisk='
withreplace
(3)数据库差异备份
todisk='
\备份数据库\defback_shop'
withdifferential
(4)数据库的恢复