您好,欢迎访问三七文档
数据库课程设计—医院数据库设计小组成员2912601016池泽生(组长):主要负责触发器和存储过程2912601015黄仕嘉:主要负责对创建好的数据库属性(包括断言)的增删改,兼做部分查询2912601009姜青余:主要负责数据的查询2912601023佟晏美:主要负责创建表2912601029李秦州:主要负责数据的增,删,改世纪,医院作为一个特殊的行业,其发展也与信息化的今天密切相关。目前国家医院正处于改革阶段,需要对医疗市场的进一步规范与效率化提出新的改变。这也要求了医院加强自身的管理与利用现代化工具对医院的整体信息资源进行整合,将数据库运用于医院中,也肯定无疑的提高了工作的效率,信息的准确度,根除现行制度的弊端,达到减支增效的目的。有利于医院医疗水平与服务质量的提高,更好的造福人类,所以我们小组从医院数据库设计这方面,对医院主要的数据进行了设计与规划。一、题目及其专题题目:医院信息管理数据库设计专题:医院信息管理的主要数据库设计与简单构想二、课程设计来源及选题依据设计来源:来自医院实际,以提供医院一个高效与合理的数据库关系设计。选题依据:提高医院的工作效率,与信息的管理自动化。确保医院数据库数据的合理性与有效、准确、完整性。三、本设计所要达到的目的从医院的总体部门,细化到各个医生与病人身上。提高医院在对病人进行诊断过程中,有关于医生、病人、诊断书、用药量与药价等等所产生信息的整合与规划,保证其中信息的高效、准确、完整原则。(草理版)医院管理数据字典:字段类型说明是否可为空DeptNoChar(10)部门编号(主键)否DeptNameChar(20)部门名字否DeptparentNOCgar(10)上级部门编号(外键)是DgovNoChar(10)部门主管编号(外键)否病人表(部门表(dept):用于记录部门信息医院管理数据字典:字段类型说明是否为空DnoChar(10)医生编号(主键)否DnameChar(20)医生姓名否Dsexbit医生性别否DborthDatetime医生出生日期否DeptNoChar(10)医生所属部门编号(外键)是DlevelChar(20)医生等级否DsalaryDecimal(8,2)医生工资否医生表(Doctor):用于记录医生与病人部门之间的信息医院管理数据字典:字段类型说明是否可为空PnoChar(10)病人编号(主键)否PnameChar(20)姓名否Psexbit性别否PborthDatetime出生年月否Pphone联系电话(多值)Paddressvarchar地址否病人表(Patient):记录病人信息(20)号码否PidChar(10)对应的病人(外键)否PtypeChar(10)电话类型否Pno(主键)电话表(P_phone)记录电话信息医院管理数据字典:Identity(1,1)电话编号否医院管理数据字典:字段类型说明是否为空MnoChar(10)药品编号否MnameChar(50)药品名称否MtypeChar(10)药品类型否MuniteChar(10)药品计量否MpriceDecimal(8,2)药品价格否药品表(Medicine):用于记录药品信息医院管理数据字典:字段类型说明是否为空RnoIdentity(1,1)主治编号(主键)否DgnoChar(10)就诊表编号(外键)否Rtimedatetime就诊时间否主治表(recipemaster)字段类型说明是否为空RnoIdentity(1,1)主治编号(外键)否MnoChar(10)药品编号(外键)否McountDetimal(10,5)用量否药方表(recipedetail):用于记录医生用药情况(Rno,Mno)联合主键医院管理数据字典:医院管理数据字典:字段类型说明是否为空FnoIdentity(1,1)费用表编号(主键)否RnoIdentity(1,1)主治编号(外键)否FtimeDatetime时间否FmoneyDecimal(8,2)费用否费用表(fee):记录每次主治的费用医院管理数据字典:字段类型说明是否为空DgnoChar(10)就诊表编(主键)否PnoChar(10)病人编号(外键)否DnoChar(10)主治医生编号(外键)否SymptonChar(500)病症否DiognosisChar(100)病种否DgtimeDatetime就诊时间否RfeeDecimal(8,2)就诊费用是就诊表(Diagnosis)医院记录病人的就诊信息数据库关系图(最终版)编制过程讲解:1、创建数据库和表createdatabaseHospital;useHospital;//创建数据库//使用数据库(在组长强行要求下,我组医院系统完全采用SQL语句完成!)、创建数据库和表编制过程讲解:CreateTableDept(DeptNoChar(10)primarykey,Deptnamechar(20)notnull,Deptparentnochar(10)referencesDept(DeptNo),Dnochar(10)notnull)//创建部门表(Dnochar(10)primarykey,Dnamechar(20)notnull,Dsexbitnotnull,Dborthdatetimenotnull,DeptNochar(10)referencesDept(DeptNo),Dlevelchar(20)notnull,DsalaryDecimal(8,2)notnull)1、创建数据库和表编制过程讲解://创建医生表、创建数据库和表编制过程讲解:createtablePatient(Pnochar(10)primarykey,Pnamechar(20)notnull,Psexbitnotnull,PborthDateTimenotnull,Paddresschar(100))//创建病人表、创建数据库和表编制过程讲解:createtableP_phone(PhoneNointidentity(1,1)primarykey,Pcodechar(20)notnull,Pidchar(10)referencesPatient(Pno)notnull,Ptypechar(10),)//创建病人联系方式表(Mnochar(10)primarykey,Mnamechar(50)notnull,Mtypechar(10)notnull,Munitechar(10)notnull,MpriceDecimal(8,2)notnull)1、创建数据库和表编制过程讲解://创建药品表(Dgnochar(10)primarykey,Pnochar(10)referencesPatient(Pno),Dnochar(10)referencesDoctor(Dno),Symptonchar(500)notnull,Diognosischar(100)notnull,DgtimeDatetimenotnull,DgfeeDecimal(8,2))编制过程讲解:1、创建数据库和表//创建就诊表、创建数据库和表编制过程讲解:createtableRecipeMaster(Rnointidentity(1,1)primarykey,Dgnochar(10)referencesDiagnosis(Dgno)notnull,RtimeDatetimenotnull)//创建主治表、创建数据库和表编制过程讲解:createtablerecipedetail(RnointreferencesRecipeMaster(Rno),Mnochar(10)referencesMedicine(Mno),McountDecimal(5,5)notnull,primarykey(Rno,Mno))//创建治疗细节表、创建数据库和表编制过程讲解:createtableFee(Fnointidentity(1,1)primarykey,RnointreferencesRecipeMaster(Rno),FtimeDatetimenotnull,Fmoneydecimal(8,2)notnull)//创建费用表编制过程讲解:2、对表进行的调整与修改altertableDeptaddforeignkey(Dno)referencesDoctor(Dno)//增加部门经理的外键altertableDiagnosisaddcheck(Dgfee=0)//添加费用的约束条件altertableFeeaddFtimeDatetimenotnullaltertableFeedropcolumnFtime//删除列//添加新列altertableFeeaddcheck(Fmoney=0)altertablerecipedetailaltercolumnMcountdecimal(10,5)notnull;//修改列属性编制过程讲解:3、事务与触发器演示createtriggertrigger1onFeeforinsertasbegintrybegintransactionif(selectDgfeefromDiagnosiswhereDgnoin(selectDgnofromRecipeMasterwhereRecipeMaster.Rno=(selectRnofrominsertedwhereFno=@@identity)))0本触发器功能为当费用表增加记录是,与其相对应的就诊表的费用属性也相应增加(第一部分)=Diagnosis.Dgfee+(selectFmoneyfrominsertedwhereFno=@@identity)whereDgnoin(selectDgnofromRecipeMasterwhereRecipeMaster.Rno=(selectRnofrominsertedwhereFno=@@identity))elseupdateDiagnosissetDiagnosis.Dgfee=(selectFmoneyfrominsertedwhereFno=@@identity)whereDgnoin(selectDgnofromRecipeMasterwhereRecipeMaster.Rno=(selectRnofrominsertedwhereFno=@@identity))commitendtry编制过程讲解:3、事务与触发器演示(第二部分)(@@Trancount0)rollbackdeclare@errmsgnvarchar(4000),@ErrSeverityintselect@errmsg=error_message(),@ErrSeverity=
本文标题:医院数据库设计
链接地址:https://www.777doc.com/doc-4308823 .html