1、销售管理:根据实际销售自动生成销售单据。如果是会员,则药品价格按95折计算。查询及统计功能:对指定时间段的出/入库进行查询/统计,对药品有效期进行查询/统计,对药品过期进行查询/统计,对指定时间段的药品销售进行查询/统计以及利润查询/统计等。能帮顾客查询药品信息,能按品名、生产厂家、药品类别、存货量进行查询。设计要求:1.完成数据库概念结构设计、逻辑结构设计、物理结构设计;2.创建数据库,完成表、存储过程、触发器等数据库对象设计;3.用JAVA语言,完成信息系统的部分程序界面设计与调试运行。 指导教师: 2016 年 12 月 24 日课 程 设 计 评 语 成绩:_ 2017 年 1 月 3
2、日 1概述1.1本设计的背景和意义了解到部分药店因为规模较小没有专业的药店管理系统,本设计能够适应于规模较小的药店。通过运用数据库库技术,不仅可以使药店的管理更加方便,并且还能提高数据的正确性。该药店管理系统以进货、存储、销售为主要业务,分别实现其他具体功能。1.2采用的数据开发工具及应用开发工具本设计采用的数据开发工具为SQL Server 2008,应用开发工具为Eclipse 2需求分析2.1功能需求药店管理系统能够实现药品库存、销售信息管理和查询功能,根据实际销售自动生成销售单据。2.2数据需求经过对学校附近的药店的调研以及在网上查找的资料,药店药品管理系统的处理对象主要包括:药品信息
3、、供应商信息、顾客信息、药品销售信息、药品存储信息等几个方面。根据市场需求需要的数据组成如下需要的数据有操作员、会员、药品、订单、厂家、进货单这些实体的组成数据有,操作人员需要包括:账号、密码、联系、地址;会员表:账号、年龄、联系、地址;药品信息中含有:药品ID、药品名、类别、生产日期、有效期、进价、售价、生产厂家;订单详情中含有的有:订单编号、药品名、购买数量、售价、购买人员、销售日期;厂家信息包括:厂家编号、厂家名、地址;进药表、药品ID、操作员、进药日期、进药数量3概念结构设计将需求分析阶段得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,它是整个数据库设计的关键,它通过对用
4、户需求进行综合、归纳、抽象,形成一个独立于具体DBMS的概念模型。根据需求分析,在该系统中存在以下实体集:药品信息实体集、顾客信息实体集、厂家信息实体集、销售信息实体集等等。根据需求做出的E-R图如下图2-11N总体E-R图2-3-14逻辑结构设计4.1建立关系模式操作人员(账号、密码、联系、地址)会员(账号、年龄、联系、地址)药品(药品ID、药品名称、类别、生产厂家编号)仓库(批次ID、药品ID、药品名、类别、生产日期、有效期、进价、售价、生产厂家)订单详情(订单编号、药品名、购买数量、售价、购买人员、销售日期、操作员)厂家(厂家编号、厂家名、地址)进药(药品ID、操作员、进药日期、进药数量
5、)4.2关系模式规化处理根据函数依赖关系,分析得每一个关系模式均满足3NF。5物理结构设计5.1建立数据库物理设计时为逻辑数据模型选取一个最合适应用环境的物理结构(包括存储结构和存取方法),数据库的物理结构通常分为两步: (1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。由于本次课程设计的数据库数据量不大,再加上数据库实施软件会自动建立一些索引,所以这里没有必要特别建立索引。需要创建一个数据库文件,命名为DrugControl创建数据库语句为create database DrugControl 5.2数据表创建(1)创建
6、Drug表,如图5-1create table Drug(-品名Dno varchar(10) primary key,-药品编号Dname varchar(20) not null,-药品名Dclass varchar(20),-药品类别Sname varchar(20)-生产厂家)图5-1(2)创建供应商Suppliter表如图5-2create table Supplier(-供应商Sno varchar(10) primary key,Sname varchar(20) not null,Sphone char(11),Semail varchar(20),Saddress varch
7、ar(50)图 5-2(3)创建管理员表Opert如图5-3create table Opert(-管理员Mno varchar(10) primary key,Mpassw varchar(20),Mname varchar(20) not nullMphone char(11),Memail varchar(20),Maddress varchar(50)图5-3(4)创建会员表Customer如图5-4create table Customer(-会员Cno varchar(10) primary key,Cname varchar(20) not null,Cage int check
8、(Cage0 or Cage is null),Cphone char(11),Cemail varchar(20),Caddress varchar(50) 图5-4(5)创建库存表Dugstore如图5-5create table Drugstore(-库存Lno varchar(10) primary key,-入库编号Dno varchar(10) ,-药品编号Pquantity int,-药品数量Idate date,-入库时间out_date date,Dbidd float,Dprice float,Sname varchar(20),-厂家名Mname varchar(20),
9、-操作员foreign key(Dno) references Drug(Dno),图 5-5(6)创建出售表Sale如图5-6create table Sale(-出售Slno varchar(10),Dno varchar(10),Cno varchar(10),Ddprice float,Mquantity int,-销售数量Amoney float,Idate date,-销售日期图5-6(7)创建缺货单A如图5-7create table Absence(-缺货单Lno varchar(10) primary key,Pquantity int,Pdade date,Astate v
10、archar(10),foreign key(Dno) references Drug(Dno)图 5-7(8)数据视图创建根据需求仅需要创建一个视图就可以完成所需要的功能,需要创建的视图为“即将过期的药品”如图5-8create view 即将过期药品单(Lno,Dname,Dclass,Pquantity,lessdate)asselect Lno ,Dname,Dclass,Pquantity,DATEDIFF(day,GETDATE(),out_date)from Drugstore图5-85.2存储过程创建(1)创建增加会员存储过程*增加会员*/create procedure 增加
11、会员 Cname varchar(20),Cage int,Ccemail varchar(20),declare i int,n varchar(10)select i=max(cast(substring(Cno,2,len(Cno)-1)as int)+1 from Customer -获取最大值+1select n=substring(C0000,1,5-len(i)+cast(i as varchar(5)-转换成编号insert into Customer values(n,Cname,Cage,Cphone,Ccemail,Caddress)验证存储过程如图5-9exec 增加会
12、员 没,121111111.理工图5-9(2)创建增加操作人员存储过程/*增加操作人员*/create procedure 增加操作员 Mname varchar(20),Mmphone char(11),Mmemail varchar(20),Mmaddress varchar(50)select i=max(cast(substring(Mno,2,len(Mno)-1)as int)+1 from Opert -获取最大值+1insert into Opert values(n,Mpassw,Mname,Mmphone,Mmemail,Mmaddress)验证存储过程如图5-10exec 增加操作员 1感冒11111111111111qq. 图5-10(3)创建增加品名存储过程/*增加品名*/create procedure 增加品名Dname varchar(20),Dclass varchar(20),Sname varchar(20)select i=max(cast(substring(Dno,2,len(Dno)-1)as int)+1 from Drug -获取最大值+1D0000insert into Drug values(n,Dname,Dclass,Sn
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1