医院门诊管理系统数据库设计

article/2025/9/22 15:13:34

医院门诊管理系统数据库设计

目录

    • 医院门诊管理系统数据库设计
      • ER图
      • sql语句
      • 查询问题

ER图

ER图

sql语句

--新建数据库CREATE  DATABASE  HOSPITAL_OUTPATIENT_MS
ON PRIMARY
(
NAME = [201811040728_data],
FILENAME = 'E:\HOMS_data.mdf',
SIZE=10MB
)
LOG ON(
NAME = [201811040728_log],
FILENAME = 'E:\HOMS_log.ldf',
SIZE=5MB
)--新建表CREATE TABLE PAT --病人
(
PA# CHAR(10),   --病人卡号
NAME CHAR(10) NOT NULL,  --姓名
SEX CHAR(2)  NOT NULL,  --性别
AGE SMALLINT  NOT NULL,--年龄>0
NUMBER CHAR(18)  NOT NULL, --身份证号
PHONE CHAR(11)  NOT NULL,  --手机号
BALANCE DOUBLE PRECISION  NOT NULL, --卡上余额>0
PRIMARY KEY(PA#)
);ALTER TABLE PAT
ADD CONSTRAINT CEK_PAT_BAL
CHECK(BALANCE>0);ALTER TABLE PAT
ADD CONSTRAINT CEK_PAT_AGE
CHECK(AGE>0);ALTER TABLE PAT
ADD CONSTRAINT CEK_PAT_SEX
CHECK(SEX='男' OR SEX='女')CREATE TABLE DPM --科室
(
DE# CHAR(10), --科室编号
NAME CHAR(20) NOT NULL, --科室名
PHONE CHAR(11)  NOT NULL, --科室电话
PRIMARY KEY(DE#)
);CREATE TABLE RGF--挂号费
(
TITLE CHAR(10),--职称
PRICE DOUBLE PRECISION NOT NULL,--挂号费>0
PRIMARY KEY(TITLE)
);ALTER TABLE RGF
ADD CONSTRAINT CEK_RGF_PRI
CHECK(PRICE>0);CREATE TABLE DOC --医生
(
DO# CHAR(10), --医生编号
NAME CHAR(20) NOT NULL, --姓名
SEX CHAR(2)  NOT NULL, --性别
AGE SMALLINT  NOT NULL,--年龄>0
TITLE CHAR(10)  NOT NULL, --职称
DE# CHAR(10)  NOT NULL, --所属科室编号
PRIMARY KEY(DO#),
FOREIGN KEY(TITLE)REFERENCES RGF(TITLE),
FOREIGN KEY(DE#)REFERENCES DPM(DE#)
);ALTER TABLE DOC
ADD CONSTRAINT CEK_DOC_AGE
CHECK(AGE>0);ALTER TABLE DOC
ADD CONSTRAINT CEK_DOC_SEX
CHECK(SEX='男' OR SEX='女')CREATE TABLE PMC --药房
(
PH# CHAR(10), --药房编号
NAME CHAR(10)NOT NULL, --药房名
PRIMARY KEY(PH#)
);CREATE TABLE MDC --药品
(
ME# CHAR(10), --药品编号
CATEGORY CHAR(10)  NOT NULL, --类别
NAME CHAR(20) NOT NULL,  --品名
LETTER CHAR(10) NOT NULL,  --拼音首字母
SPECIFI CHAR(20)  NOT NULL, --规格
UNIT CHAR(10) NOT NULL,--单位
MPRICE DOUBLE PRECISION  NOT NULL, --单价>0
INVENTORY SMALLINT  NOT NULL, --库存量>0
PH# CHAR(10) NOT NULL,  --药房编号
PRIMARY KEY(ME#),
FOREIGN KEY(PH#)REFERENCES PMC(PH#)
);ALTER TABLE MDC
ADD CONSTRAINT CEK_MDC_PRI
CHECK(MPRICE>0);ALTER TABLE MDC
ADD CONSTRAINT CEK_MDC_INV
CHECK(INVENTORY>0);CREATE TABLE PRE --处方
(
PR# CHAR(10), --处方编号
TIME CHAR(12) NOT NULL, --时间
DID TINYINT NOT NULL,--已执行
DO# CHAR(10) NOT NULL, --医生编号
PA# CHAR(10) NOT NULL,  --病人卡号
PRIMARY KEY(PR#),
FOREIGN KEY(DO#)REFERENCES DOC(DO#),
FOREIGN KEY(PA#)  REFERENCES PAT(PA#)
);CREATE TABLE DWD--医嘱
(
WO# CHAR(10),  --医嘱编号
ME# CHAR(10) NOT NULL,--药品编号
QUANTITY TINYINT NOT NULL,--数量>0
ONCE CHAR(10) NOT NULL,--单次用量
FREQUENCY CHAR(20) NOT NULL, --频次
METHOD CHAR(10) NOT NULL, --给药方法
PR# CHAR(10) NOT NULL, --处方编号
PRIMARY KEY(WO#),
FOREIGN KEY(ME#)REFERENCES MDC(ME#),
FOREIGN KEY(PR#)REFERENCES PRE(PR#)
);ALTER TABLE DWD
ADD CONSTRAINT CEK_DWD_QUA
CHECK(QUANTITY>0);CREATE TABLE RCD --消费记录
(
RE# CHAR(10), --记录编号
PA# CHAR(10) NOT NULL, --病人卡号
PRICE DOUBLE PRECISION  NOT NULL,--交易金额
TIME CHAR(12) NOT NULL, --时间
PRIMARY KEY(RE#),
FOREIGN KEY(PA#)  REFERENCES PAT(PA#)
);CREATE TABLE RGS --挂号
(
RE# CHAR(10),--编号
DID TINYINT NOT NULL,--已执行
PA# CHAR(10) NOT NULL,--病人卡号
DO# CHAR(10) NOT NULL,--医生编号
PRIMARY KEY(RE#),
FOREIGN KEY(DO#)REFERENCES DOC(DO#),
FOREIGN KEY(PA#)  REFERENCES PAT(PA#)
);--数据插入
INSERT INTO DPM VALUES
('11041801','消化科','12330316'),
('11041807','骨科','12330313'),
('11041810','呼吸科','12330307'),
('11041811','神经科','12330321'),
('11041803','口腔科','12330317');INSERT INTO RGF VALUES
('住院医师',20),
('主治医师',50),
('主任医师',100);INSERT INTO DOC VALUES
('11803','王晓东','男',28,'住院医师','11041801'),
('11806','李亚伟','男',34,'主治医师','11041807'),
('11807','陈立新','男',36,'主治医师','11041807'),
('11813','张锋','男',47,'主任医师','11041810'),
('11801','李莉','男',53,'主任医师','11041810');INSERT INTO PMC VALUES
('20601','注射剂药房'),
('20602','外用药药房'),
('20603','口服药房'),
('20604','中药房'),
('20605','精神类药房');INSERT INTO MDC VALUES
('0925713','甲类','多潘立酮片','dpltp','12片×4板/盒','盒',18.00,273,'20603'),
('0925728','甲类','盐酸曲唑酮片','ysqztp','6片×3板/盒','盒',65.00,137,'20603'),
('0925741','甲类','六味地黄丸','lwdhw','300粒/瓶','瓶',9.80,253,'20603'),
('0925706','甲类','复合维生素B片','fhwssbp','20片×4片/盒','盒',6.80,274,'20603');INSERT INTO PAT VALUES
('573931','张明','男',40,'124171197908100813','18825410231',750),
('573714','李鑫','男',43,'124171197604070816','18854210271',320),
('573723','王丽','女',38,'124171198103120813','18845212014',560),
('573768','陈楠','女',37,'124171198207130811','18842589701',103);INSERT INTO PRE VALUES
('191020103','191020152003',0,'11803','573931'),
('191020104','191020163010',0,'11806','573714'),
('191020105','191020163824',0,'11806','573723');INSERT INTO DWD VALUES
('191020174','0925713',1,'1片','一日3次','口服','191020103'),
('191020175','0925728',2,'2片','一日3次','口服','191020104'),
('191020176','0925741',4,'10粒','一日1次','口服','191020104'),
('191020177','0925706',1,'4片','一日3次','口服','191020105');INSERT INTO RCD VALUES
('191020713','573931',-30,'191020164001'),
('191020714','573714',-103,'191020165823'),
('191020715','573723',500,'191020170103'),
('191020716','573723',-157,'191020170825');INSERT INTO RGS VALUES
('191020073',0,'573931','11803'),
('191020074',0,'573714','11803'),
('191020075',0,'573723','11806'),
('191020076',0,'573768','11803');

查询问题

1.医生给病人开药时,输入药品名的拼音,显示与输入的拼音一致的药品名,并将选定的药品的基本信息显示出来。
首先获取所有药品的拼音,与输入的拼音比对,再用所有符合条件的拼音获取所有符合条件药品的药品名,选定某一药品时,根据药品编号获取该药品的相关信息。
2.病人拿药时,将所花费金额从病人余额中扣除。
查找该病人的处方,根据处方编号查找该处方的所有医嘱。将药品单价与数量的乘积从病人的余额中扣除。


http://chatgpt.dhexx.cn/article/nRMEEOmM.shtml

相关文章

医院信息管理系统

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

医院信息管理系统/医院管理系统的设计与实现

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

【计算机毕业设计】医院病历管理系统

一、系统截图(需要演示视频可以私聊) 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医院病历管理系统当然也不能排除在外。医院病历管理系统是…

基于JSP实现医院病历管理系统

项目编号:BS-YL-006 本系统基于JSPSERVLET实现医院病历管理系统,前端基于CSSJS实现开发,数据库采用MYSQL,开发工具为IDEA或ECLIPSE均可。 本系统共分为四个角色: 管理员角色:主要管理工作人员信息&#…

基于ssm的医院病历管理系统SSM医院管理系统

基于ssm医院病历管理系统 基于ssm医院病历管理系统 今天给大家分享一下基于SSM的医院病历管理系统,希望能帮助大学哈~~ 介绍: eclipse ,mysql,spring,springmvc,mybatis 本设计主要实现集人性化、高效率、…

医院病历管理系统

医院病历管理系统 本设计报告主要设计一个病历管理系统,因为这个系统是学校老师下发给我要求我做的,也是作为期末考试成绩的一部分,所以这几天我整理了一下,将这个关于病历管理系统写到博客里面,用于大家学习参考。 首…

[转]工作流:小明和小强都是张老师的学生

工作流:小明和小强都是张老师的学生好久没上网了发贴了,看到有人发这道题,就用工作流的解决方式作一下吧小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是 下列10组中的一天,张老师把M值告诉…

工作流:小明和小强都是张老师的学生......

好久没上网了发贴了,看到有人发这道题,就用工作流的解决方式作一下吧 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是 下列10组中的一天,张老师把M值告诉了小明,把N值告诉了小强…

工作流:小明和小强都是张老师的学生

工作流:小明和小强都是张老师的学生 好久没上网了发贴了,看到有人发这道题,就用工作流的解决方式作一下吧 小明和小强都是张老师的学生,张老师的生日是M月N日, 2人都知道张老师的生日是 下列10组中的一天,张老师把M值告…

小强和小明猜生日(20min)

今天碰到一道有点意思的智力题,想通了其实还是很简单的: 小明和小强都是张老师的学生,张老师的生日是M月N日, 2人都知道张老师的生日是下列10组中的一天, 张老师把M值告诉了小明,把N值告诉了小强&#xff…

逻辑推理:张老师的生日

题目描述 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天: 3月4日 3月5日 3月8日6月4日 6月7日9月1日 9月5日12月1日 12月2日 12月8日张老师将M值告诉了小明,将N值告诉了小强&#x…

E盘显示无法访问位置不可用的资料找回办法

磁盘打不开位置不可用,是因为这个I盘的文件系统内部结构损坏导致的。要恢复里面的数据就必须要注意,这个盘不能格式化,否则数据会进一步损坏。具体的恢复方法看正文工具/软件:流星数据恢复软件 步骤1:先下载并解压软件…

在加入域时又出现了“不能访问网络位置”的错误 的解决

错误信息: 当您尝试加入域时,出现Network Location Cannot be Reached(不能访问网络位置)错误信息 症状 当您尝试使用域的完全限定的域名称 (FQDN) 错误原因: TCP/IP NetBIOS Helper Service 服务没有启动 解决办法…

windows自动更新导致:无法访问网络位置*:\Program Files(x86)

windows又一次自动更新了,真的是非常的奇怪,已经将windows update service禁用了,但是仍然阻止不了其更新 结果更新完成后,大量软件报错无权限,大量软件报错:无法访问网络位置*:\Program Files(x86) 解决…

WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]

最近在使用的 wsl2 的时候突然发现 wsl2 无法正常联网,即 ping 不通外网以及宿主机的 wsl 网卡。但是将 wsl 版本设置为 1 就可以联网了。 如果你是正常使用的时候,并且自己没有手动修改过 主机 和 WSL2 的网络配置,然后就忽然发现 WSL2 不能…

怎么查找计算机上的网络路径,找不到网络路径怎么办

不到网络路径怎么办?通过\\ip或\\访问任何计算机时都会出现“找不到网络路径”的错误提示,无法正常访问网络资源,但可以访问外部网页。最终的解决方法可以通过重置TCP/IP各组件恢复到初始状态,下面将会具体演示解决找不到网络路径的问题。 1、键盘上按下Win+R快捷键调出【运…

win10如何设置计算机网络访问,win10系统设置允许或拒绝从网络中访问本地电脑的操作方法...

win10系统设置允许或拒绝从网络中访问本地电脑的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统设置允许或拒绝从网络中访问本地电脑的的现象,根据小编的调查并不是所有的朋友都知道win10系统设置允许或拒绝从网络中访问本地电脑的的问题怎么…

添加网络位置(共享目录)

给美术同学和策划同学提供的文档 0X01 添加网络位置 1.双击我的电脑 2.在下面空白处右键,选择添加网络位置 3.弹出添加向导,点击下一步 4.点击选择自定义网络位置,双击 5.地址栏输入网络地址,然后点击下一步 这里输入自己要用的网络位置…

matlab安装出现“无法访问所在网络位置”的正确解决办法

今天安装matlab时出现了如下错误:无法访问您试图使用的功能所在的网络位置,单击“确认”重试或者在下面输入包含“vcredist.msc”的文件夹路径。 (由于我修改之前没有截图,这张图是从别人那里下载的) 像往常一样&…

网络访问计算机无法访问,电脑已连接网络却无法访问互联网怎么办

电脑已连接网络却无法访问互联网怎么办 电脑明明连接着网络,却无法访问互联网,该怎么办呢?只要进入在IPV4协议中,设置为自动获得ip地址,自动获得DNS服务器地址即可解决。一起来看看吧。 1. 首先打开电脑,进入桌面,点击左下角的开始图标,在打开的菜单中,点击左下方的齿…