药店药品管理系统数据库总报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.1 分析过程

根据之前的数据流图和数据字典,我们提取出实体、实体的属性、标识实体的码、确认实体之间的联系及其类型。定义如下:

药品:[药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价‘买药单价]

买药人员:[买药人编号、买药人性命、性别、年龄、联系电话、住址]

制药商:[制药商编号、制药商名称、公司地位、联系电话、联系网址]

柜台信息:[柜台编号、柜台名称]

药品退订:[药品编号、制药上编号、药品数量、处理时间、退订方式]

药品售退:[药品编号、买药人编号、药品数量、处理时间、售退方式]

药品储存:[药品编号、柜台编号、药品数量]

2.2子模块ER图

2.2.1存药子模块ER图

2.2.2售药子模块ER图

2.2.3购进药品子模块ER图

2.3 全局ER图

3.逻辑设计部分

3.1数据库关系模式定义描述

1. Drug(药品)

属性名数据类型别名(注释)可否为空主键/ 外键取值范围Dno char(5) 药品编号否主键

Dname char(20) 药品名称否

Dclass char(10) 药品分类

Dguige char(10) 药品规格

考虑在这组属性上建立作为唯一索引

4.2.2 系统模块分析

1、药品基本信息的查询与更新(插入、删除、修改)操作

2、制药商基本信息的查询与更新(插入、删除、修改)操作

3、买药人基本信息的查询与更新(插入、删除、修改)操作

4、药品存储信息的查询与更新(插入、删除、修改)操作

5、药品盈利情况统计查询

6、买药人购买药品信息的查询

7、管理员对买药人购买药品和退回药品信息的查询

8、管理员对购药人员订购药品和退订药品信息的查询

4.2.3 系统模块分析

四、程序源码与运行结果

1表和视图的建立

1.1 创建购药记录表

create table DBuy

( Pno char(5 ) not null,

Dno char(5) not null,

Quantity int not null ,

Time_SD smalldatetime,

Deal char(4) not null,

create nonclustered index timeidx on DBuy(Time_SD DESC), primary key(Pno,Dno),

foregin key(Pno) reference Parient(Pno),

forgrin key(Dno) reference Drug(Dno),

check(Quantity>'0'),

check(Deal='售出')

);

1.2 创建药品存储表

create table Stored

( Lno char(5 ) not null,

Dno char(5) not null,

Quantity int not null ,

primary key(Lno,Dno),

foregin key(Lno) reference Storage(Lno), forgrin key(Dno) reference Drug(Dno),check(Quantity>'0')

);

1.3 创建买药视图

create view DM_P

as

select Dname,Dguige,Drand,Mname,Mplace,Mphone,Memail

from Drug,Maker,Dorder

where Drug.Dno=Dorder.Dno and Maker.Mno=Dorder.Mno

with check option

1.4 创建退药视图

create view DM_M

as

select Dname,Dguige,Dbrand,Dprice1,Dpricel2,Mname,Mplace,Mphone,Memail from Drug,Maker,DBack

where Drug.Dno=DBack.Dno and Maker.Mno=DBack.Mno

with check option

2 数据插入

2.1向 Dorder表中插入一个订购记录

insert into Dorder values('M0001','D0009','150','2014-10-23','订购')

5.2.2 向Drug表插入一个新的药品记录

insert into Drug values('D0024','维生素','维生素','125s*36粒','太极',1.50,2.00)

3数据查询

3.1 全药品存储位置及库存查询

3.2 查询在2004-8-21退订的药品数量大于80的药品的详细信息

3.3查询在2004-8-05 前买药的病人的姓名和地址

4 数据统计

4.1 统计在2014-8-21卖出的各药品数量

4.2 统计编号为"P0001"的病人购买各药品的总数量

5 数据修改

5.1 将Drug表中编号为D0001的药品的名称由666感冒灵更改为999感冒灵

5.2修改存储在二层左位置的所有药品的库存数量为100

五、课程设计总结与感悟

在学习数据库这门课程时,感觉学到的知识还是掌握了的,并且以为自己已经理解了,但真正通过一个课程设计去应用这些知识的时候才发现,会遇到很多困难,并且学到的知识自己其实并不能熟练的应用,将知识应用到实际的工作并没有很好的完成。

在课程设计遇到了许多问题,例如:

插入数据时,提示插入的数据长度不符合要求,原因是未考虑到汉字占两个字节,char[]的长度设置过小,解决办法是修改长度即可

无法插入数据到一个表中,总是提示外键约束错误,原因是因为该表中有外键,而外键所在的表未插入数据,所以无法插入数据到该表(插入的外键值不存在)。解决方法是先将外键所在表的数据插入,在插

相关文档
最新文档