专业实习报告姓名学号系别信息工程系专业12本电子商务班级1班广东财经大学华商学院二O年月日医院管理系统数据库的设计与实现1 系统分析通常系统分析包括处理对象、处理功能要求和安全性完整性要求。
(1)处理对象药店药品管理系统的处理对象主要包括:药品资料信息,病人信息,门诊挂号信息,医生信息,科室资料等几个方面,其具体内容如下(详细信息查看数据项):①药品资料信息:药品编号、药品名称、药品分类、药品规格、药品品牌、进药单价、买药单价,制药商等方面,这样可以方便的查询药品的基本信息,了解药品盈利情况(单个药品盈利=买药单价-进药单价)、哪种品牌的药品比较畅销等。
②病人信息:编号,姓名,性别,出生日期,联系电话,身份证号,住址推定情况等。
便于药品出现问题时及时与当事人联系。
③门诊挂号信息:挂号编号,科室编号,挂号类别,是否退号,挂号费,挂号日期。
④医生信息:医生编号,姓名,性别,出生日期,所属科室编号,职称,入院时间⑤科室资料:科室编号,科室名,科长编号,电话⑥护士信息:护士编号,姓名,性别,出生日期,所属科室编号,值班时间,联系方式⑦病房信息:病房编号、床位数,科室名,病人编号,病人姓名,病人性别,病人入住时间,病人离院时间,病房楼层吗,住院费用⑧药品库存:药品编号,存储编号,药品数量,存储位置,存储时间,取药时间,取药数量2 业务流程(怎么运作的)业务或业务活动是对组织或企业的一切专业工作和活动的总称。
业务流程图是根据系统详细调查过程中所得的资料和问卷调查的结果,按业务实际处理过程绘制成的图,在药店药品管理系统中,经分析调查,其大致可以分为三个管理:药品存取管理、医生调配管理、护士调配管理,病人挂号管理。
(1)病人挂号管理:病人来到医院看病,一般首先是挂号,登记病人信息,然后病人拿到挂号单等候医生看病,需要住院的病人拿取病房(2)医生调配管理:接到挂号单,科室调配医生帮病人看病,医生根据病人病情开药单(3)药品存取管理:一个医院要开张营业,首先要购进药物,购药人员根据售药处对药品的需求以及库存信息,制定药品的需求单据并从制药商那求购所需的药品。
购进药品后,购药人员将合格药品单据送往库存管理员进行药物存储,将不合格的药品单据送往制药商进行退货处理。
药品管理人员接到医生开药单,到仓库根据药的存储编号找到存储位置拿药。
(4)护士调配管理:接到挂号单,科室调配护士负责病人的住院情况,4.全局E-R图解决各分E-R图之间存在的属性冲突、命名冲突、结构冲突等冲突,将各分E-R图合并起来生成初步E-R图,再消除不必要的冗余后得到全局E-R图如下:(注:为了节省篇幅,在全局E-R图中省去了各个实体以及实体之间联系的属性。
见附表:医院管理系统数据库的设计与实现er图二、数据表结构表2-1药品表属性名数据类型是否为空主键/外键取值范围药品编号char(5)否主键药品名称char(20)否药品分类char(8)药品规格char(10)药品品牌char(10)进药单价float否大于零卖药单价float否大于零表2-2 病人表属性名数据类型是否为空主键/外键取值范围病人编号char(5)否主键病人姓名char(10)否出生日期Char(8)否性别char(2)否男、女联系电话char(11)住址char(20)否身份证号Char(20)否挂号编号Char(5)表2-3 医生表属性名数据类型是否为空主键/外键取值范围医生编号char(5)否主键医生姓名char(10)否性别char(2)否男、女出生日期char(10)否职称char(10)否入院时间char(10)否所属科室编号char(5)否外键工资float表2-4 挂号表属性名数据类型是否为空主键/外键取值范围挂号编号char(5)否主键挂号类别char(15)否科室编号char(5)否外键是否退号char(2)挂号费float否挂号日期char(10)否科长编号Char(5)否外键表2-5 科室表属性名数据类型是否为空主键/外键取值范围科室编号char(5)否主键科室名char(10)否科长编号char(5)否外键电话char(11)药品编号Char(5)外键表2-6 护士表属性名数据类型是否为空主键/外键取值范围护士编号char(5)否主键护士姓名char(5)否性别char(2)否男/女出生日期char(10)所属科室编号char(5)外键联系方式char(11)值班时间smalldatetime否工资float病人编号Char(5)否外键表2-7 病房表属性名数据类型是否为空主键/外键取值范围病房编号char(5)否主键病床编号Char(2)否床位数char(6)否病人编号char(5)否外键病人姓名char(10)否病人性别char(2)病人入住时间char(10)病人离院时间char(10)病房楼层Char(2)住院费用float表2-8 药品库存表属性名数据类型是否为空主键/外键取值范围药品编号char(5)否外键存储编号char(5)否药品数量Char(10)存储位置Char(20)存储时间Char(10)取药时间Char(10)取药数量Char(10)三.创建表的相关语句create table药品表(药品编号char(5)not null primary key,药品名称char(20)not null,药品分类char(8),药品规格char(10),药品品牌char(10),进药单价float not null check(进药单价>0),卖药单价float not null check(卖药单价>0))create table病人表(病人编号char(5)not null primary key,病人姓名char(10)not null,出生日期char(8)not null,性别char(2)not null,联系电话char(11),住址char(20)not null,身份证号码char(20)not null)alter table病人表add挂号编号char(5)not null foreign key references挂号表(挂号编号) create table医生表(医生编号char(5)not null primary key,医生姓名char(10)not null,性别char(2)not null,出生日期char(10)not null,职称char(10)not null,入院时间char(10)not null,所属科室编号char(5)not null foreign key references科室表(科室编号),工资float)select*from information_schema.columns where table_name='医生表' create table挂号表(挂号编号char(5)not null primary key,挂号类别char(15)not null,科室编号char(5)not null foreign key references科室表(科室编号),是否退号char(2),挂号费float not null,挂号日期char(10)not null,)alter table挂号表add科长编号char(5)not null foreign key references医生表(医生编号) create table科室表(科室编号char(5)not null primary key,科室名char(10)not null,科长编号char(5)not null,电话char(11))alter table科室表add药品编号char(5)not null foreign key references药品表alter table科室表add constraint ref_whforeign key(科长编号)references医生表(医生编号)create table护士表(护士编号char(5)not null,护士姓名char(5)not null,性别char(2)not null,出生日期char(10),所属科室编号char(5)foreign key references科室表(科室编号),联系方式char(11),值班时间smalldatetime not null,工资float)alter table护士表add constraint PK_护士编号primary key (护士编号)alter table护士表add病人编号char(5)not null foreign key references病人表(病人编号) alter table护士表add病房编号char(5)not null foreign key references病房表(病房编号) create table病房表(病房编号char(5)not null,病床编号char(2)not null,床位数char(6)not null,科室名char(10)not null,病人编号char(5)not null,病人姓名char(10)not null,病人性别char(2)not null,病人入住时间char(10)not null,病人离院时间char(10),病房楼层char(2),primary key(病房编号,病床编号))alter table病房表drop column科室名alter table病房表add constraint FKforeign key (病人编号)references病人表(病人编号) alter table病房表drop constraint PK__病房表__13402C5B5441852A alter table病房表drop constraint PKalter table病房表add constraint PKprimary key (病房编号)alter table病房表add constraint PK primary key (病床编号)alter table病房表add住院费用floatselect as表名,b.Xtype as键类型, as键名from sysobjects a,sysobjects bwhere a.ID=b.parent_obj and ='病房表'and b.Xtype in('F','PK') create table药品库存表(药品编号char(5)not null foreign key references药品表(药品编号),存储编号char(5)not null)alter table药品库存表add药品数量char(10)alter table药品库存表add存储位置char(20)alter table药品库存表add存储时间char(10)alter table药品库存表add取药时间char(10)alter table药品库存表add取药数量char(10)四、相关的触发器及存储过程1.当有病人退号时,将其编号插入退号单create proc退号单(@chargeback char(5))asdeclare@挂号编号char(5)select@挂号编号from挂号表insert into退号单values(@chargeback,@挂号编号)2.当有病人出院时,将他从病人表中删除并插入到出院单create trigger出院单on病人表for deleteasinsert into出院单select*from deleted3.当护士到药品库存取药时,药品数量会减少相应的量create trigger剩余药品数量on药品库存表after insertasupdate药品库存表set药品库存表.药品数量=药品库存表.药品数量-药品库存表.取药数量from药品库存表,inserted4.将病人的信息存储到病人信息中create proc病人信息@病人编号char(5),@病人姓名char(10),@病人出生日期char(8),@病人性别char(2),@病人联系电话char(11),@病人住址char(20),@病人身份证号码char(20),@病人挂号编号char(5),@病人病床编号char(2),@病人入住时间char(10),@病人离院时间char(10),@病房楼层char(2),@住院费用float,@挂号费float,@挂号编号char(5),@挂号类别char(15),@病房编号char(5)asinsert into病人信息values(@病人姓名,@病人出生日期,@病人性别,@病人联系电话,@病人住址,@病人身份证号码,@病人挂号编号,@病人病床编号,@病人入住时间,@病人离院时间,@病房楼层,@住院费用,@挂号费,@挂号编号,@挂号类别,@病房编号)五、数据库调试(调用一下自己创建的TSQL语句是否成功,截图)附表:医院管理系统数据库的设计与实现er图-。