药品进销存系统.docx
《药品进销存系统.docx》由会员分享,可在线阅读,更多相关《药品进销存系统.docx(23页珍藏版)》请在冰豆网上搜索。
药品进销存系统
浙江树人大学
信息科技学院
《数据库系统实习》
实习报告
课题:
进销存管理系统
班级:
电商091
学号:
200905017122
姓名:
何锴翔
2012.3
第一章
需求分析
1.1功能介绍
进销存软件的功能有购采购、采购退货、采购付款、销售、销售退货、销售付款、退货情况、盘库、仓库调拨、借入、借出、借入还出、借出还入,供方客户资料管理,供方供货汇总、明细报表,采购付款汇总、明细报表多仓库,多币种,多结算方式(先进先出,移动平均等),报表等功能,进销存可以使您摆脱繁杂的数字统计等琐事,只需轻松的点击鼠标即可,进销存可以分为B/S架构和C/S架构.B/S是浏览器/服务器模式,只要在服务器装好后,其他人只需要用浏览器(比如IE)就可以正常浏览。
1.2系统目标
药房进销存系统组织结构图
1.3系统功能划分
系统功能结构图
1.4功能描述
♦入库管理
入库单录入:
将新进的药品进行入库扫描,录入,方便确认核对。
冲入库单:
将之前录入的入库单进行冲销,进行第二次录入
入库单作废:
药品录入完毕时,发现入库单有错但已无法更改时,该入库单将以作废处理,再进行重新录入。
重打入库单:
对已录入的入库单进行重新操作。
添加发票号:
将录入完成的药品添加发票号。
♦出库管理
出库单录入:
药品在出仓前进行出库扫描,方便确认核对。
冲出库单:
将之前录入的出库单进行冲销,进行第二次录入。
出库单作废:
药品录入完毕时,发现入库单有错但已无法更改时,该
出库单将以作废处理,再进行重新录入。
重打出库单:
对已录入的出库单进行重新操作。
♦移库管理
移库单录入:
药品从该仓库转移到另一仓库时,双方仓库均进行移库扫描,方便确认核对。
冲移库单:
将之前录入的移库单进行冲销,进行第二次录入。
移库单作废:
将要移库药品录入完毕时,发现移库单有错但已无法更改时,
该移库单将以作废处理,再进行重新录入。
重打移库单:
对已录入的移库单进行重新操作。
接受移库:
确定转移的药品无误,双方录入也无错误时,确定接受移库。
♦仓库复核
在进行入库,出库,移库等操作后进行仓库的复核,确定药品出入无误。
♦查询与统计
入库单查询:
对已经录入仓库的药品进行查询。
出库单查询:
对已经录入出库的药品进行查询。
移库单查询:
对已经录入移库的药品进行查询。
仓库查询:
对仓库中存有的药品进行查询。
打印物价本:
对全部采购记录以报表的形式进行打印输出。
♦收款与复核
进行财务的核对。
♦系统维护
对整个系统,数据,以及客户资料进行维护。
第二章概念结构设计
2.1目的
♦掌握数据库概念结构设计的方法
♦掌握E-R图的画法
2.2各个分E-R图
分E-R图的建立依据于数据流图的建立,如下图所示。
♦供应商实体图的属性包括供应商编号,供应商名称,供应商品数量,供应商地址,联系方式。
如图2-1所示
图2-1供应商实体图
♦管理员实体图的属性包括管理员编号,管理员姓名,性别,地址,联系方式,部门。
如图2-2所示
图2-2管理员实体图
♦客户实体图的属性包括编号,姓名,性别,年龄,联系方式,地址。
如图2-3所示
图2-3客户实体图
♦商品实体图的属性包括商品编号,商品名称,供应商,商品批号商品规格,生产厂家,生产日期,入库价格,零售价格,备注。
如图2-4所示
图2-4商品实体图
♦仓库实体图的属性包括仓库名称,仓库编号,备注信息。
如图2-5所示
图2-5仓库实体图
♦采购员实体图的属性包括编号,姓名,地址,联系方式。
如图2-6所示
图2-6采购员实体图
♦供应商—采购员之间的联系图,如图2-7所示
图2-7供应商—采购员联系图
供应商可以将商品提供给多个采购员,采购员也可以向多个供应商进行采购,因此,供应商与采购员之间的联系是m:
n的关系。
♦商品—采购员之间的联系图,如图2-8所示
图2-8商品—采购员联系图
商品可以提供给多个采购员,采购员也可以采购多种商品,因此,商品与采购员之间的联系是m:
n的关系。
♦商品—管理员之间的联系图,如图2-9所示
图2-9商品—管理员之间的联系图
管理员可以管理多种商品,因此,商品与管理员之间的联系是1:
n的关系。
♦仓库—管理员之间的联系图,如图2-10所示
图2-10管理员—仓库之间的联系图
管理员可以同时管理多个仓库,一个仓库也可以由多个管理员来管理,因此,仓库与管理员之间的联系是m:
n的关系。
♦仓库—商品之间的联系图,如图2-11所示
图2-11商品—仓库之间的联系图
仓库可以存储多种商品,方便管理将多个商品也能存储在一个仓库中,因此,仓库与商品之间的联系是1:
n的关系。
♦仓库—商品之间的联系图,如图2-12所示
图2-12商品—客户之间的联系图
商品可以由多个客户购买,一个客户也可以购买多个商品,因此,商品与客户之间的联系是m:
n的关系。
2.3全局E-R图
综合各部分的分E-R图,药品进销存管理系统的总体E-R图的设计如下图2-13所示。
图2-13全局E-R图
供应商提供商品给采购员,可以是多个供应商将商品提供给多个采购员,因此,供应商与采购员的关系是m:
n的关系。
多个采购员采购商品,可以采购多种商品,因此,采购员与商品之间的联系是m:
n的关系。
管理员将商品进行整理,为管理方便,通常由一个管理员来整理仓库中的商品,因此,管理员与商品之间的联系是m:
n的关系。
为了方便管理,由管理员来管理多个仓库,因此,管理员与仓库之间的联系是1:
n的关系。
仓库可以存储多种商品,商品也能存储在多个仓库中,因此,仓库与商品之间的联系是1:
n的关系。
客户购买商品,经常是多个客户买多种商品,所以商品与客户之间的联系也是m:
n的关系。
第三章逻辑结构设计
3.1目的
♦掌握数据库逻辑结构设计的方法
♦掌握E-R图向管理数据模型转化的几个原则
3.2建立关系模式
供应商和采购员为m:
n的关系,将它们之间的联系转换为独立的关系模式。
采购员和商品为m:
n的关系,将它们之间的联系转换为独立的关系模式。
仓库和商品的关系为1:
n,将它们之间的联系与n端实体合并。
管理员和仓库为m:
n的关系,将它们之间的联系转换为独立的关系模式。
管理员和商品的关系为1:
n的关系,将它们之间的联系与n端实体合并。
客户和商品之间的联系为m:
n的关系,将它们之间的联系转换为独立的关系模式。
♦实体转换为关系模式
供应商(供应商编号,供应商名称,供应商品数量,供应商地址,联系方式)
采购员(采购员编号,采购员姓名,地址,联系方式)
商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)
管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)
仓库(仓库编号,仓库名称,备注)
客户(客户编号,客户姓名,性别,年龄,联系方式,地址)
♦联系转换为关系模式
提供(供应商编号,采购员编号,供应商品数量,联系方式)
采购(商品编号,采购员编号,商品数量,商品价格,采购日期)
整理(商品编号,管理员编号,商品数量)
管理(管理员编号,仓库编号,部门)
存储(商品编号,仓库编号,商品数量)
购买(商品编号,客户编号,商品数量,零售价格,销售日期,联系方式)
3.3关系模式规范化
♦供应商和采购员为m:
n的关系,将它们之间的联系转换为独立的关系模式。
供应商(供应商编号,供应商名称,供应商品数量,供应商地址,联系方式)
采购员(采购员编号,采购员姓名,地址,联系方式)
提供(供应商编号,采购员编号,供应商品数量,联系方式)
♦采购员和商品为m:
n的关系,将它们之间的联系转换为独立的关系模式。
采购员(采购员编号,采购员姓名,地址,联系方式)
商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)
采购(商品编号,采购员编号,商品数量,商品价格,采购日期)
♦仓库和商品的关系为1:
n,将它们之间的联系与n端实体合并。
仓库(仓库编号,仓库名称,备注)
商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注,商品数量)
♦管理员和仓库为m:
n的关系,将它们之间的联系转换为独立的关系模式。
管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)
仓库(仓库编号,仓库名称,备注)
管理(管理员编号,仓库编号,部门)
♦管理员和商品的关系为1:
n的关系,将它们之间的联系与n端实体合并。
管理员(管理员编号,管理员姓名,性别,部门,联系方式,地址)
商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注,商品数量)
♦客户和商品之间的联系为m:
n的关系,将它们之间的联系转换为独立的关系模式。
商品(商品编号,商品名称,供应商,商品批号,商品规格,生产厂家,入库价格,零售价格,生产日期,备注)
客户(客户编号,客户姓名,性别,年龄,联系方式,地址)
购买(商品编号,客户编号,商品数量,零售价格,销售日期,联系方式)
第四章物理结构设计
4.1目的
♦掌握将数据库关系模式在相应的DBMS上实现的方法
4.2表的构建
♦供应商
CREATETABLEgys
(供应商编号Char(4)Notnullprimarykey,
供应商名称Varchar(20)Notnull,
供应商品数量Varchar(20),
供应商地址Varchar(4),
联系方式Char(4))
列名
数据类型
字符
允许空
供应商编号
Char
4
Checked
供应商名称
Varchar
20
Checked
供应商品数量
Varchar
20
Checked
供应商地址
Varchar
4
Checked
联系方式
Char
4
Checked
♦采购员
CREATETABLEcgy
(采购员编号Char(4)Notnullprimarykey,
采购员姓名Varchar(20)Notnull,
地址Varchar(20),
联系方式Varchar(4))
列名
数据类型
字符
允许空
采购员编号
Char
4
Checked
采购员姓名
Varchar
20
Checked
地址
Varchar
20
Checked
联系方式
Varchar
4
Checked
♦商品
CREATETABLEsp
(商品编号Char(4)Notnullprimarykey,
商品名称Varchar(20)Notnull,
供应商Varchar(20),
商品批号Varchar(4),
商品规格Char(4),
生产厂家Varchar(20)
入库价格Varchar(4),
零售价格Varchar(4),
生产日期Varchar(4),
备注Varchar(20))
列名
数据类型
字符
允许空
商品编号
Char
4
Checked
商品名称
Varchar
20
Checked
供应商
Varchar
20
Checked
商品批号
Varchar
4
Checked
商品规格
Char
4
Checked
生产厂家
Varchar
20
Checked
入库价格
Varchar
4
Checked
零售价格
Varchar
4
Checked
生产日期
Varchar
4
Checked
备注
Varchar
20
Checked
♦管理员
CREATETABLEgly
(管理员编号Char(4)Notnullprimarykey,
管理员姓名Varchar(20)Notnull,
性别Varchar(4),
部门Varchar(20),
联系方式Char(4),
地址Varchar(20))
列名
数据类型
字符
允许空
管理员编号
varchar
4
Checked
管理员姓名
varchar
20
Checked
性别
varchar
10
Checked
部门
varchar
10
Checked
联系方式
varchar
10
Checked
地址
varchar
20
Checked
♦仓库
CREATETABLEck
(仓库编号Char(4)Notnullprimarykey,
仓库名称Varchar(20)Notnull,
备注Varchar(20))
列名
数据类型
字符
允许空
仓库编号
Char
4
Checked
仓库名称
Varchar
20
Checked
备注
Varchar
20
Checked
♦客户
CREATETABLEgly
(客户编号Char(4)Notnullprimarykey,
客户姓名Varchar(20)Notnull,
性别Varchar(4),
年龄Varchar(4),
联系方式Char(4),
地址Varchar(20))
列名
数据类型
字符
允许空
客户编号
Char
4
Checked
客户姓名
Varchar
20
Checked
性别
Varchar
4
Checked
年龄
Varchar
4
Checked
联系方式
Char(50)
4
Checked
地址
Varchar(50)
20
Checked
♦提供
CREATETABLEtg
(供应商编号Char(4)Notnullprimarykey,
采购员编号Varchar(20)Notnull,
供应商品数量Varchar(20),
联系方式Char(4))
列名
数据类型
字符
允许空
供应商编号
Char
4
Checked
采购员编号
Varchar
20
Checked
供应商品数量
Varchar
20
Checked
联系方式
Char
4
Checked
♦采购
CREATETABLEcg
(商品编号Char(4)Notnullprimarykey,
采购员编号Varchar(20)Notnull,
商品数量Varchar(20),
商品价格Char(4),
采购日期Varchar(20))
列名
数据类型
字符
允许空
商品编号
Char
4
Checked
采购员编号
Varchar
20
Checked
商品数量
Varchar
20
Checked
商品价格
Char
4
Checked
采购日期
Varchar
20
Checked
♦整理
CREATETABLEzl
(商品编号Char(4)Notnullprimarykey,
管理员编号Varchar(20)Notnull,
商品数量Varchar(20))
列名
数据类型
字符
允许空
商品编号
Char
4
Checked
管理员编号
Varchar
20
Checked
商品数量
Varchar
20
Checked
♦管理
CREATETABLEgl
(管理员编号Char(4)Notnullprimarykey,
仓库编号Varchar(20)Notnull,
部门Varchar(20))
列名
数据类型
字符
允许空
管理员编号
Char
4
Checked
仓库编号
Varchar
20
Checked
部门
Varchar
20
Checked
♦存储
CREATETABLEcc
(商品编号Char(4)Notnullprimarykey,
仓库编号Varchar(20)Notnull,
商品数量Varchar(20))
列名
数据类型
字符
允许空
商品编号
Char
4
Checked
仓库编号
Varchar
20
Checked
商品数量
Varchar
20
Checked
♦购买
CREATETABLEgm
(商品编号 Char(4)Notnullprimarykey,
客户编号Varchar(4)Notnull,
商品数量Varchar(4),
零售价格Char(4),
销售日期Varchar(4),
联系方式Varchar(4))
列名
数据类型
字符
允许空
商品编号
Char
4
Checked
客户编号
Varchar
4
Checked
商品数量
Varchar
4
Checked
零售价格
Char
4
Checked
销售日期
Varchar
4
Checked
联系方式
Varchar
4
Checked
4.3索引的作用
♦通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
♦可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
♦可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
♦在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
♦通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
4.4索引代码
♦为‘sp’表格的商品名称添加索引,代码如下:
USEhkx
go
CREATEINDEX商品名称ONdbo.sp(商品名称)
♦为‘kh’表格的客户编号添加索引,代码如下:
USEhkx
go
CREATEINDEX客户编号ONdbo.kh(客户编号)
♦为‘gly’表格的管理员编号添加索引,代码如下:
USEhkx
go
CREATEINDEX管理员编号ONdbo.gly(管理员编号)
第五章数据库完整性、安全性设计
5.1目的
♦掌握约束、默认、规则的创建方法
♦掌握存储过程、触发器的创建方法
♦掌握数据库安全性的设计方法,包括账户管理和权限管理
5.2数据库完整性设计
♦约束
∙约束名:
为各表的主键
供应商表(gys):
供应商编号;采购员(cgy):
采购员编号;商品(sp):
商品编号;管理员(gly):
管理员编号;仓库(ck):
仓库编号;客户(gly):
客户编号;提供(tg):
供应商编号
∙约束类型
主键约束(PRIMARYKEY)、唯一键约束(UNIQUE)、默认值约束(DEFAULT)、检查约束(CHECK)、外键约束(FOREIGNKEY)
∙约束的作用:
保证插入数据的有效性。
∙代码
以PRIMARYKEY,UNIQUE,DEFAULT,CHECK为例
∙primarykey约束
CREATETABLEgys
(供应商编号Char(4)Notnullprimarykey,
供应商名称Varchar(20)Notnull,
供应商品数量Varchar(20),
供应商地址Varchar(4),
联系方式Char(4))
∙Unqiue约束
CREATETABLEcgy
(采购员编号Char(4)Notnullprimarykey,
采购员姓名Varchar(20)unique,
地址Varchar(20),
联系方式Varchar(4))
∙Default约束
CREATETABLEgly
(客户编号Char(4)Notnullprimarykey,
客户姓名Varchar(20)Notnull,
性别Varchar(4)default'男',
年龄Varchar(4),
联系方式Char(4),
地址Varchar(20))
∙Check约束
CREATETABLEsp
(商品编号Char(4)Notnullprimarykey,
商品名称Varchar(20)Notnull,
供应商Varchar(20),
商品批号Varchar(4),
商品规格Char(4),
生产厂家Varchar(20)
入库价格Varchar(4),
零售价格Varchar(4),
生产日期Varchar(4)check(生产日期between1998and2001),
备注Varchar(20))
♦默认
∙默认名:
default
∙默认的绑定对象:
列或用户定义的数据类型
∙默认的作用:
在数据库中对存储在表的列或用户自定义数据类型中的值进行默认。
∙创建和绑定默认的代码
以性别为例:
createdefaultdef_性别
as'男'
go
execsp_bindefault'def_性别','kh.[性别]'
以部门为例:
createdefaultdef_部门
as'采购部'
go
execsp_bindefault'def_部门','gly.[部门]'
♦规则
∙规则名:
rule
∙规则的绑定对象:
列或用户定义的数据类型
∙规则的作用:
在数据库中对存储在表的列或用户自定义数据类型中的值的规定和限制。
∙创建和绑定规则的要求:
以商品的生产日期为例:
createrule生产日期_rule
as
@生产日期>1998and@生产日期<2001
execsp_bindrule'生产日期_rule','sp.[生产日期]'
以客户年龄为例:
createrule年龄_rule
as
@年龄>25and@年龄<35
execsp_bindrule'年龄_rule','sp.[年龄]'
♦存储过程
∙存储名:
procedure
∙存储过程的作用:
有特定的功能,可被调用,提高了程序的运行效率
∙存储过程的代码
以购买信息为例:
ifexists(selectnamefromhkx
wherename='购买信息' andtype='p')
dropprocedure购买信息
go
createprocedure购买信息
as
selectsp.商品编号,kh.客户编号,gm.商品编号,gm.客户编号,客户姓名
fromsp,gm,kh
wheresp.商品编号=gm.商品编号andkh.客户编号=gm.客户编号
go
以购买信息为例:
ifexists(selectn