医药销售管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1. 需求分析 (2)
2.数据库概念设计 (2)
3.数据库逻辑设计 (4)
4.数据库与数据表设计 (5)
5.触发器和存储过程设计 (7)
5.1 存储过程 (7)
5.2 触发器 (11)
6.数据库的用户与权限管理 (12)
7.数据库的备份 (12)
8.数据的导入与导出 (13)
9.课程设计小结 (17)
10.参考文献 (17)
医药销售管理系统
1. 需求分析
本系统要求实现以下主要功能:
基本信息模块:包括药品信息、员工信息、客户信息、供应商信息四个子模块。(1)进货管理功能:包括入库登记、入库登记查询二个子功能。
(2)库房管理功能:包括库存查询、库存盘点、退货处理三个子功能。
(3)销售管理功能:包括销售登记、销售退货、销售报表查询三个子功能。(4)财务统计功能:包括当日统计、当月统计二个子功能。
(5)系统维护功能:包括数据安全管理、操作员管理、权限设置三个功能。
说明:根据对现实中医药销售管理业务,将用户分为二类超级管理员(经理)、普通管理员(操作员)。
用户主要活动:
(1)经理主要参与活动有:
①查询销售情况和财务状况以便了解本企业的经营状况,作出相应的决策;
②管理员工,了解不同员工的上班时间和他的相关的业绩;
③客户的管理,了解客户的数量,注销有问题的客户;
④供应商的管理,了解供应信息,选择最合适的供应商。
(2)营业员主要活动有:
医药销售管理是指对药品信息的录入、更新、修改和删除;
查询药品信息,以了解是否有该药品和库存等信息;
销售药品,出库记录;
退还药品,入库记录;
现金收支是指对进出帐目的记录统计。
(3)顾客主要活动:
①查询药品信息;
②选购药品。
2.数据库概念设计
数据库的概念设计就是画出E-R图。分析前面的系统功能要求,需要一个表来存储和管理客户信息,使系统能够接受客户查询药品时输入的各项数据,以实现数据录入、查询或统计客户信息等功能。客户是本系统的第一个实体。
为了能实现查询和统计药品情况等功能,必须有一个表来存储和管理所有药品的信息。药品是本系统的第二个实体。
据此可以绘出医药销售管理系统数据库的E-R图如下:
2
经典文档下载可编辑复制
3.数据库逻辑设计
3.1将数据库的概念模型转换为关系模型
药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期)外码:药品类别代号、供应商
药品分类索引信息(药品类别代号,类别说明)
员工信息(员工号,姓名,用户名,密码,职位,权限)
客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)
供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商,总额,销售员编码)外码:销售员编码、药品编码
3.2关系模式优化:
在上述关系模式中,每一个分量都是不可分割的数据项所以都符合第一范式;而且前四个关系模式都是单个属性作为码,没有任何非主属性对码部分函数依赖,在药品销售信息内虽由三个属性作为码,但也不存在非主性对码的部分函数依赖,所以上都符合第二范式;药品信息、药品类别索引、客户信息、供应商信息四个关系模式中都不存在非主属性对码的传递函数依赖,都属于第三范式。
在员工信息关系模式中,员工是按照权限分类的,职位不同权限也不同,这样该关系模式就存在了非主属性对码的传递依赖:职工号->职位,职位->权限,所以就将用员工信息分解为如下现个模式:
①员工信息(员工号,姓名,用户名,用户口令,职位)
②职位权限信息(职位,权限)
本系统不考虑职工信息的管理,为了使销售员编号与销售员的职工号连系起来,并能通过职工姓名和职位来修改用户信息所以把员工的部分信息(职工号,姓名,职位)和经理(用户名,密码)合成了员工信息(员工号,姓名,用户名,密码,职位,权限)以便系统功能的实现,所以在此不采用模式分解。
药品销售信息中有大量的数据冗余,表达不明确,将其分解为如下两个模式:
①药品销售主表(销售编码,销售日期,销售员编号,总金额)
②药品销售子表(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商)
4
4.数据库与数据表设计
数据库设计是根据系统功能的要求和数据规模规划数据库服务器选型、数据表结构定义、分配数据库服务器端的功能实现以及创建数据库对象。
在SQL数据库中需要建立7个数据表:医药销售主表、医药销售子表、药品信息表、员工信息表、药品类别索引信息表、客户信息表和供应商信息表。
(1)数据表设计
a.客户信息数据表
其中,GuestCode(序号)是表的主键,惟一标识一个客户。设计时定义它为标识列,系统自动地产生连续的永不重复的序号。
b.药品信息数据表
其中,MedcineCode(药品编码)是该表的主键,惟一标识一种药品。
c.医药销售主表
d.医药销售子表
经典文档下载可编辑复制
e.供应商信息表
f.员工信息表
g.药品类别索引信息表
(2)数据完整性设计
设计好表的结构后,需要根据实际应用和操作规则为表制定一系列约束和规则,从而达到保证数据完整性原则的目的。
主键约束、非空值约束
在七个表的设计中已经规定了每个表的主键列、非空列,这些规定都是在实际应用环境中所必需的。比如MedInfor表中定义了药品编号MedicineCode为主键,则在表MedInfor中MedicineCode必须是惟一的——一个药店不可能出现两个编号相同的药品; FirmInfor表中定义了FirmName非空。
例如:create table MedInfor/*创建药品信息表*/
(MedicineCode char(6) constraint M_PRIM PRIMARY KEY,
MedicineName varchar(8) NOT NULL,
MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode),
Price Money,
ListPrice Money,
Number Int,
FirmCode char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode),
Userfulllife Datetime)
6