1、商店进销存管理系统数据库设计 商店进销存管理系统 数据库设计说明书 吴静 杜茂坤 拟制人 审核人 批准人_ 月年【2013118日星期五】 数据库设计说明书 1.引言1 / 14 1.1编写目的特别是用计算机开发的数据库随着计算机技术的高速发展,人们对计算机的依赖性越来越强,商品数量急剧增以及数据管理系统在生活应用中表现得更为突出。随着超市规模的发展不断扩大,作为加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而对于这些企业的资国内市场的一些中小型商店,它们在信息化过程中的步伐要落后于大型超市,就需要有高效的处理方式和管理方要适应市场竞争,源管理,信息的存储和
2、处理也显得迫切需要, 法。因此,针对中小型商店开发一个商店进销存管理系统是非常必要的。智能化,通过使用商店进销存管理系统,使商店的管理工作系统化、规范化、自动化、简易化、商店进销存管理系统其开发主要包括后台数据库的建立从而达到提高超市进销存管理效率的目的。数据安全性对于前者要求建立数据一致性和完整性强,和维护以及前端应用程序的开发两个方面。商易使用等特点。系统实现了商品信息管理,好的数据库。而对于后者则要求应用程序功能完备,数据库的库存信息查询等功能。本文详细地介绍了软件的开发环境、品进货操作,商品出货操作, 设计、各个模块的设计和实现及具体界面的设计和功能。 背景1.2 a. 待开发软件系统
3、的名称: 商店进销存管理系统 本项目的任务提出者:b. 石河子大学 本项目开发者:c. 吴静,杜茂坤 本项目用户:d. 商店员工 1.3 参考资料 2005.北京:清华大学出版社,.uml实践 M.龚晓庆,卞雷等译Mark 1 Priestley.面向对象设计2 郑人杰,马素霞,殷人昆.软件工程概论 M.北京:机械工业出版社,2011. 3 王珊,萨师煊.数据库系统概论概论 M.北京:高等教育出版社,2005. 4 卢瀚,王春斌.java web开发实战1200例M.北京:清华大学出版社,2011. 2.结构设计 2 / 14 2.1 界面设计 整个系统从符合操作简便、界面友好、灵活、实用、安
4、全的要求出发,完成进货、销售、库存管理的全过程。 系统的登录界面如图2.1。 图2.1系统登陆界面 系统首页如图2.2所示。 图2.2系统首页 商品添加页面如图2.3所示。 3 / 14 图2.3商品添加页面 商品查询界面如图2.4所示。 图2.4商品查询界面 密码修改界面如图2.5所示。 4 / 14 图2.5密码修改界面 2.2 逻辑结构设计 (1)局部E-R图 商品及商品属性之间存在属于的关系,如图2.6所示。 图2.6 商品、供应商及之间存在着供应入库的关系,E-R图如图2.7所示。 5 / 14 图2.7 商品和仓库之间存在图2.8所示关系。 图2.8 商品和顾客之间存在销售的关系,
5、如图2.9所示。 6 / 14 图2.9 (2)全局E-R图 图2.10 2.3关系模型设计 商品类型(类型号,类型名,说明) 商品(商品号,商品名,类型号,单价,单位,规格,说明) 供应商(供应商号,供应商全称,地址,联系人,电话,电子邮箱,开户银行,开户账号) 顾客(顾客号,顾客全称,地址,联系人,电话,电子邮箱,开户银行,开户账号) 业务员(业务员号,工资,登陆名,密码) 7 / 14 仓库(仓库号,面积,单位) ) 供应单号,供应商号,业务员号,应付,实付,未付,是否付清,日期入库单( 入库详单(商品号,仓库号,供应单号,数量,金额) 销售单(流水号,业务员,应收,实收,未收,是否结清
6、,销售日期) 销售详单(商品号,流水号,数量,金额) 转仓详单(转仓单号,商品号,转出仓库,转入仓库) 库存(仓库号,商品号,库存量) 关系图2.4 入库管理关系图 (1) 2.11 图 2()销售管理关系图8 / 14 . 2.12 图 )转仓关系图(3 2.13 图 2.5物理结构设计) 商品类别表2-1 splb( 字段名数据类型 长度 说明 意义ID varchar 20 Primary key 类型号9 / 14 lxname varchar 20 Not null 类型名 memo varchar 100 说明 表2-2 tb_brand(商品) 字段名 数据类型 长度 说明 意义
7、 ID varchar 20 Primary key 商品号 spname varchar 20 Not nul 商品名 splb varchar 10 Foreign key 类型号 dj money not null 单价 dw Varchar 10 not null 单位 gg Varchar 50 规格 memo varchar 100 说明 表2-3 tb_ck(仓库) 字段名 数据类型 长度 说明 意义 ID Int Primary key 仓库号 ckmj Float 面积 mjdw Varchar 6 单位 memo varchar 100 说明 表2-4 tb_supplie
8、r(供应商) 字段名 数据类型 长度 说明 意义 ID Int Primary key 供应商编号 gysname varchar 50 Not null 供应商全称 address varchar 100 Not null 地址 Lxr varchar 50 联系人 lxrtell varchar 50 Not null 联系电话 khyh varchar 50 开户银行 gysemail varchar 50 电子信箱 表2-5 tb_customer(顾客) 字段名 数据类型 长度 说明 意义 ID Int Primary key 客户编号 khname varchar 50 Not n
9、ull 客户全称 address varchar 100 Not null 地址 Lxr varchar 50 联系人 lxrtell varchar 50 Not null 联系电话 khyh varchar 50 开户银行 gysemail varchar 50 电子信箱 10 / 14 表2-6 tb_user(业务员) 字段名 数据类型 长度 说明 意义 ID Int Primary key 业务员编号 username Varchar 40 用户名 Password varchar 40 密码 表2-7 tb_rkd(入库单) 字段名 数据类型 长度 说明 意义 ID varcahr
10、 20 Primary key 供应单号 GysID Int Foreign key 供应商号 czy varcahr 10 操作员 yf Money 应付 sf Money 实付 Wf Money 未付 whether Varchar 2 是否付清 rkdate datetime 验收日期 表2-8 tb_ruku(供应详单) 字段名 数据类型 长度 说明 意义 spID Varchar 20 Foreign key 商品号 ckID Varchar 20 Foreign key 供应单号 sl Int 数量 Je Money 金额 Rkid Varchar 20 入库单号 表2-9 tb-
11、selld(销售单) 字段名 数据类型 长度 说明 意义 ID Varchar 20 Primary key 流水号 kyID Int Foreign key 客户号 ys money 应收 ss money 实收 Ws Money 未收 jq Varchar 2 是否结清 xsdate date 销售日期 表2-10 tb_sell(销售详单) 字段名 数据类型 长度 说明 意义 spID Varchar 10 Foreign key 商品号 Selld Varchar 20 Foreign key 流水号 sl int 数量 je Money 金额 11 / 14 表2-11 tb_zc(
12、转仓单) 字段名 数据类型 长度 说明 意义ID varchar 20 主键spID Varchar 20 Foreign key 商品号Zcck Int Foreign key 转出库编号Zrck Int Foreign key 转入库编号 ) 2-12 tb_kc(库存表字段名 数据类型长度 说明 意义ckID Varchar 20 Foreign key 仓库号spID Varchar 20 Foreign key 商品号kcSl int 库存量kcje Money 金额 3 存储过程脚本 1)创建存储过程统计指定时间段内各种商品的进货数量( pro_rksl proccreate in
13、t20),totalsl endtime datetime,spid varchar( starttime datetime,output ,totalje moneyoutput as where,tb_rkd je) from tb_rukutotaljeselect totalsl=sum(sl),=sum( havingby spid and endtime group =.IDtb_ruku.rkd and rkdate between starttime tb_rkdspid spid= 2)创建存储过程统计指定时间段内各种商品的销售数量( pro_xssl proccreate
14、totalsl int(20),endtime starttime datetime,datetime,spid varchar output ,totalje moneyoutput as where,tb_selld je() from tb_sellsumselect totalsl=(sl),totalje=sum spid having by endtime xsdate between starttime and groupand=tb_selld.IDtb_sell.selld spid =spid 触发器脚本4 )当商品入库时自动增加该商品的库存量(1 tri_sprk tri
15、ggercreate insert for on tb_ruku rksl intckid1 ,ckid 20varchar,oldje intdeclareas oldsl ,moneyspid (),intmoney ,intrkje 12 / 14 select ckid1=0 select spid=spid,ckid=ckid ,rksl=sl,rkje=je from inserted select ckid1=ckid from tb_kucun where spid=spid if rksl0 begin if ckid=ckid1 begin spid spid=kcje f
16、rom tb_kucun whereselect oldsl=kcsl ,oldje =spid spid=oldje+rkje where kcsl=oldsl+rksl,kcje=update tb_kucun set return end 0 =if ckid1 begin ) rkjeckid,rksl ,insert into tb_kucun values(spid, returnend end rollback transaction (2)当商品销售时自动修改各仓库的库存量 create trigger tri_spxs on tb_sell for insert as dec
17、lare oldsl int,spid varchar( 11),xssl int,oldje money,xsje money select spid= spid,xssl=sl,xsje=je from inserted select oldsl=kcsl,oldje=kcje from tb_kucun where spid=spid if xssl0 and oldsl xssl begin update tb_kucun set kcsl=oldsl-xssl,kcje=oldje- xsje where spid=spid return end rollback transacti
18、on (3)当商品转仓时自动修改各仓库的库存量 create trigger tri_spzc on tb_zc for insert as declare kcsl int,kcje money ,zcck int,zrck int,spid varchar(20) select spid=spid,zcck=zcck,zrck=zrck from inserted select kcsl=kcsl,kcje=kcje from tb_kucun where spid =spid and ckid=zcck if kcsl0 beginzcck =spid tb_kucun delete f
19、romwhere spid =and ckid insert into tb_kucun values(spid,zrck,kcsl,kcje) return end 13 / 14 rollback transaction 5 数据库恢复与备份 (1)数据库的完全备份 backup database db_shopping to disk=E:备份数据库fullback_shop init with(2)数据库的恢复 restore database db_shopping from disk=E:备份数据库fullback_shop with replace (3)数据库差异备份 backup database db_shopping to disk=E:备份数据库defback_shop differentialwith(4)数据库的恢复 restore database db_shopping from disk=E:备份数据库defback_shop replace with 14 / 14