库存分销管理系统数据库设计统计报表管理开发与实现测试毕业设计论文.docx
《库存分销管理系统数据库设计统计报表管理开发与实现测试毕业设计论文.docx》由会员分享,可在线阅读,更多相关《库存分销管理系统数据库设计统计报表管理开发与实现测试毕业设计论文.docx(33页珍藏版)》请在冰豆网上搜索。
库存分销管理系统数据库设计统计报表管理开发与实现测试毕业设计论文
库存分销管理系统
——数据库设计、统计报表管理开发与实现、测试
摘要:
本文针对目前库存管理系统存在的有关权限授权和认证问题分析,采用面向对象的开发方法,分析设计了库存分销管理系统,采用Java语言实现了库存分销管理系统中的子功能──统计报表管理与用户登录。
本文对系统的数据库设计进行说明,并对统的系统管理模块进行测试说明。
关键词:
库存;报表;登录;测试
Abstract:
Thisarticleaccordingtothepresentstockmanagementsystemexistedtheproblemoftheauthorizationandauthenticationproblem,usedtheobject-orienteddevelopmentmethod,analysisanddesignofthedistributionofinventorymanagementsystem,andusedJavalanguagetorealizethethedistributionofinventorymanagementsystems--managestatisticformsanduserlogin.Thisarticlebriefly describedthe designofthe system, andthesystem managementmoduleofthesystem test instructions.
Keywords:
Inventory;Reportforms;Login;Test
1引言
1.1编写目的
库存分销管理系统是管理企业的分销网络的系统,目的是使企业具有对订单和供货具有快速反应和持续补充库存的能力。
通过互联网将供应商与经销商有机地联系在一起,为企业的业务经营及与贸易伙伴的合作提供了一种全新的模式。
供应商和经销商之间可以实时地提交订单、查询产品供应和库存状况、并获得市场、销售信息及客户支持,实现了供应商与经销商之间端到端的供应链管理,有效地缩短了供销链。
新的模式借助互联网的延申性及便利性,使商务过程不再受时间、地点和人员的限制,企业的工作效率和业务范围都得到了有效提高。
企业可以在兼容互联网时代现有业务模式和现有基础设施情况下,扩展现有的业务和销售能力,实现零风险库存,大大降低分销成本,提高周转效率,确保获得领先一步的竞争优势。
1.2范围
库存分销管理系统是管理企业的分销网络的系统,目的是使企业具有对订单和供货具有快速的反应和持续的补充库存的能力而开发的系统。
通过互联网将供应商与经销商有机地联系在一起,为企业的业务经营及与贸易伙伴的合作提供了一种全新的模式。
适用于所有的管理企业,主要用于企业对订单和库存的掌握和管理。
1.3定义
数据库开发软件:
NavicatforMysql
数据库管理系统:
Mysql
运行环境:
WindowsXP/Win7
开发语言:
Java
1.4本文可行性分析
可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题作出判断,避免在花费了大量人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统的可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。
为了保证系统开发成功,采取面向对象的分析方法,采用面向对象的开发方法,可以将现实世界的复杂问题简单化,从现实世界中抽取出实体对象,通过协作关系将实体对象关联起来,从而达到整个系统正常运行。
采用面向对象的开发方法,可以将复杂的问题简单化,有利于编程。
2项目概述
2.1产品描述
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的库存分销管理系统。
主要有如下几个方面的目标:
⑴确保系统用户及其权限的维护和数据的安全
⑵实现分销商库存时的各种数据计算、显示和记录
⑶为供货厂商和客户建立档案
⑷能对库存的管理和商品资料维护
⑸自动记录订单和报表情况并分析当天数据得到用户需要盈亏报表结果等。
根据客户的要求,分析现有情况及问题,采用Browser/Server结构,将分销资源计划管理系统做成一个独立的网站。
2.2产品功能
公司所有产品都是通过一级分销商出货,一级分销商的货品分四种方式出库,即调拨到二级分销商调拨到三级分销商、纯销售到批发、销售到其他经销点(如超市等),二级分销商的货品分三种方式出库,即调拨到三级分销商、纯销售到批发、销售到其他经销点(如超市等),三级分销商的货品分两种方式出库,即纯销售到批发、销售到其他经销点(如超市等),超市和其他经销点都作为终端客户。
程序功能:
进行用户身份验证,根据不同登入的用户权限采用不同权限策略。
分销商库存管理:
分销商库存数量初始化确认、流向单维护、流向单审核、流向单抽查、流向单复审、盘点结果维护、盘点结果审核。
统计报表管理:
分销商级别分布图、流向单录入审核报告、流向单抽查报告、分销商月度分销(调拨)明细表、分销商库存报表。
基础数据管理:
物料维护、分销商维护、终端客户维护
系统管理:
用户维护、修改密码
2.3用户特点
知道本系统的密码用户就可在浏览器上打开以使用,不同用户所拥有的权限不同。
2.4一般约束
系统的实现约束如下:
(a)操作系统为Win2000以上
(b)开发平台为:
MyEclipse-SDK-3.1.2-win32
(c)数据库为Mysql
2.5假设和依据
a.本系统需要运行计算机为一般的PC机,计算机上一般都安装了浏览器。
b.本系统采用JSP+struts开发,JSP在现在的web开发中比较流行。
3数据库设计
数据库设计与实现是系统开发中的一个重要环节,一个结构合理的数据库可以提高系统的整体的运行效率,同时可以缩短系统的开发时间。
本系统主要采用MySqlServer作为数据库。
3.1数据库的设计原则
在数据库的设计中,本系统按照以下原则进行设计,以尽量满足系统的要求。
(1)数据库中数据的可操作性
数据库设计时注意保证在整个系统运行和业务操作过程中,数据库都能便于访问和查询,同时还需要考虑要尽量节省数据库操作时的相应时间,尽可能的提高数据库对程序和业务请求的响应速度。
(2)数据库设计的准确性和完整性
数据库中的数据设计要满足程序设计的要求,对于程序中使用的数据和存储的数据内容,都有严格的数据和准确的数据类型与之对应,同时在数据库设计时要对关键数据进行详细说明,以方便系统设计人员的开发工作。
(3)数据库冗余性
过多的冗余数据会大大增加数据库的工作量,降低数据库的响应时间和准确性。
因此改善数据库性能的一个非常重要的方面就是减少或消除数据库中的冗余信息,要通过规范化处理使冗余数据减少。
3.2数据库连接设计
为了方便连接数据库,本系统把数据库连接保存在DB.java中,采用TOMCAT服务器提供的数据库连接池。
privateDB(){
try{
ctx=newInitialContext();
//采用jndi查找连接池
ds=(DataSource)ctx.lookup("java:
comp/env/jdbc/drp");
}catch(NamingExceptionnamee){
System.out.println("查询连接池失败!
\n"+namee.getMessage());
}finally{
if(ctx!
=null){
try{
ctx.close();
}catch(NamingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
Stringdriver="com.mysql.jdbc.Driver";
Stringurl="jdbc:
mysql:
//localhost:
3306/drp";
Stringusername="root";
Stringpwd="123456";
3.3标识符和状态
表3.1系统表名用表
表名
名称或标识符
描述
状态(试验/测试使用)
t_user
用户信息表
使用
t_client
分销商信息表
使用
t_temi_client
终端信息表
未使用
t_items
物料信息表
使用
t_fiscal_year_period
会计核算期表
使用
t_flow_card_master
流向单信息
使用
t_flow_card_detail
流向单详细信息
使用
t_data_dict
数据字典
使用
3.4数据库表格设计
3.4.1数据字典
数据字典是系统中各类数据描述集合,其中规定了每个字段名称,数据类型,长度,主键等基本信息。
有时为了方便使用,在设计数据库时会有意增加一些数据冗余,对于本系统中出现的数据,这次系统中我们用以下数据字典做详细描述如下表所示:
表3.2t_user表
t_user
列名
中文名称
数据类型
长度
是否能为空
备注
user_id
用户ID
Varchar
10
notnull
primarykey
user_name
用户名
varchar
20
notnull
password
密码
varchar
20
contact_tel
联系电话
varchar
30
email
邮箱
varchar
30
create_date
创建日期
datetime
表3.3t_client表
t_client
列名
中文名称
数据类型
长度
是否能为空
备注
id
序列ID
int
notnull
primarykey
pid
上级分销商ID
int
notnull
name
名称
varchar
40
notnull
client_id
分销商代码
varchar
10
client_level
分销商等级
char
3
bank_acct_no
银行账号
varchar
30
contact_tel
联系电话
varchar
20
address
地址
varchar
50
zip_code
邮编
varchar
20
is_leaf
是否为叶子节点
char
default'N'
is_client
是否为分销商
char
default'N'
表3.4t_temi_client表
t_temi_client
列名
中文名称
数据类型
长度
是否能为空
备注
id
序列ID
int
notnull
primarykey
pid
上级分销商ID
int
notnull
name
名称
varchar
40
notnull
temi_id
分销商ID
varchar
20
temi_level
分销商级别
char
3
contact_tel
联系电话
varchar
18
contactor
联系人
varchar
30
address
地址
varchar
50
zip_code
邮编
varchar
20
is_leaf
是否为叶子节点
char
1
default'N'
is_temi_client
是否为分销商
char
1
default'N'
表3.5t_items表
t_items
列名
中文名称
数据类型
长度
是否能为空
备注
item_no
编号
varchar
10
notnull
primarykey
item_name
名称
varchar
30
notnull
spec
物料规格
varchar
30
pattern
型号
varchar
30
category
种类
char
3
notnull
unit
单位
char
3
notnull
表3.6t_fiscal_year_period表
t_fiscal_year_period
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
int
notnull
primarykey
fiscal_year
核算年
int
notnull
fiscal_period
核算月
tinyint
notnull
begin_date
起始时间
datetime
notnull
end_date
截止时间
datetime
notnull
period_sts
是否可用标识
char
1
default'N'
表3.7t_flow_card表
t_flow_card
列名
中文名称
数据类型
长度
是否能为空
备注
vou_no
流向单标识主键
varchar
16
notnull
primarykey
fiscal_year
核算年
int
notnull
fiscal_period
核算月
tinyint
notnull
client_id
客户ID
varchar
10
notnull
opr_type
操作类型
char
1
notnull
record_date
录入日期当前日期
datetime
notnull
recorder_id
录入人ID
varchar
10
notnull
vou_sts
录入N送审S
char
1
default'N'
confirmer_id
复审人ID
varchar
10
conf_date
复审日期
datetime
spotter_id
抽查人ID
varchar
10
spot_date
抽查日期
datetime
spot_remark
抽查结果描述
varchar
60
spot_flag
抽查标记Y/N
char
1
default'N'
adjust_time
调整时间
datetime
adjuster_id
调整人ID
varchar
10
表3.8t_flow_card_detail表
t_flow_card_detail
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
int
notnull
primarykey
vou_no
流向单标识
varchar
16
notnull
aim_id
客户ID
varchar
10
notnull
item_no
物料标识
varchar
10
notnull
qty
数量
decimal
(10,2)
default0
amt
金额
decimal
(10,2)
default0
adjust_qty
调整数量
decimal
(10,2)
default0
adjust_reason
调整原因
varchar
50
adjust_flag
调整标识
char
1
default'N'
表3.9t_data_dict表
t_data_dict
列名
中文名称
数据类型
长度
是否能为空
备注
id
主键
char
3
notnull
primarykey
name
名称
varchar
20
notnull
category
种类
varchar
30
notnull
3.4.2安全保密设计
在我们的系统中,因为是面向公司的后台系统,所以只有管理员的权限,用户名和密码不对普通用户开放。
用户名和密码保存在数据库中,每次登录需匹配数据库中保存的管理员的用户名和密码,还是随机验证码,只要用户名或密码不正确,都不能登录该系统,安全度极高。
3.5结构设计
3.5.1概念结构设计
图3-1各表关系图
3.5.2逻辑结构设计
/*========================================================*/
/*Databasename:
drp*/
/*DBMSname:
MySQL*/
/*Createdon:
2015-01-22*/
/*=======================================================*/
/*========================================================*/
/*Table:
t_user*/
/*========================================================*/
createtableifnotexistst_user
(
user_idvarchar(10)primarykeynotnull,
user_namevarchar(20)notnull,
passwordvarchar(20),
contact_telvarchar(30),
emailvarchar(30),
create_datedatetime
);
/*========================================================*/
/*Table:
t_client*/
/*========================================================*/
createtableifnotexistst_client
(
idintprimarykeyauto_incrementnotnull,
pidintnotnull,
namevarchar(40)notnull,
client_idvarchar(10),
client_levelchar(3),
bank_acct_novarchar(30),
contact_telvarchar(20),
addressvarchar(50),
zip_codevarchar(20),
is_leafchar
(1)default'N',
is_clientchar
(1)default'N'
);
/*========================================================*/
/*Table:
t_temi_client*/
/*========================================================*/
createtableifnotexistst_temi_client
(
idintprimarykeyauto_incrementnotnull,
pidintnotnull,
namevarchar(40)notnull,
temi_idvarchar(20),
temi_lelvechar(3),
contact_telvarchar(18),
contactorvarchar(30),
addressvarchar(50),
zip_codevarchar(20),
is_leafchar
(1)default'N',
is_temi_clientchar
(1)default'N'
);
/*========================================================*/
/*Table:
t_items*/
/*========================================================*/
createtableifnotexistst_items
(
item_novarchar(10)primarykeynotnull,
item_namevarchar(30)notnull,
specvarchar(30),
patternvarchar(30),
categorychar(3)notnull,
unitchar(3)notnull
);
/*========================================================*/
/*Table:
t_fiscal_year_period*/
/*========================================================*/
createtableifnotexistst_fiscal_year_period
(
idintprimarykeyauto_incrementnotnull,
fiscal_yearintnotnull,
fiscal_periodtinyintnotnull,
begin_datedatetimenotnull,
end_datedatetimenotnull,
period_stschar
(1)default'N'
);
/*========================================================*/
/*Table:
t_flow_card_master*/
/*==============================