數據庫課程設計__醫院管理系統_第1頁
數據庫課程設計__醫院管理系統_第2頁
數據庫課程設計__醫院管理系統_第3頁
數據庫課程設計__醫院管理系統_第4頁
數據庫課程設計__醫院管理系統_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、內容摘要數據庫的設計是指對一個給定的應用環境,構造數據庫模式,建立數據庫及其應用系統,滿足各種用戶需求。作為信息資源開發、管理和服務的一種有效的手段,數據庫技術的應用已越來越廣泛,從小型的單項事務處理系統到大型的信息系統大都用先進的數據庫技術來保持系統數據的安全性、完整性和共享性。對一個實際的系統來說,數據庫表的設計在遵循數據庫理論的同時,必須能用開發工具來實現用戶在各方面提出的功能要求。本醫院管理系統是經過實地需求分析調查、通過概念機構設計與邏輯結構設計等過程后完成的一個小型管理系統,包括:對醫生、護士、收費人員、病人、藥品及檢查的各種基本信息的查詢功能,對病人病房、收費的管理功能等。同時對

2、不同的人員授予不同的權利,保證了數據庫的安全性。關鍵詞:醫院管理 需求分析 查詢 住院管理 收費管理目 錄第一章 需求分析51.1信息要求51.2處理要求51.3安全性和完整性要求5第二章 概念結構設計12.1分E-R流程圖12.2總E-R流程圖4第三章 邏輯結構設計53.1關系模型53.2設計用戶子模式5第四章 物理結構設計6第五章 數據庫實施95.1創建醫院管理系統95.2創建必要索引105.3建立視圖105.4建立必要的存儲過程及觸發器11第六章 數據庫應用系統的實施和維護13總結18致謝19參考文獻20附錄20醫院管理系統第一章 需求分析1.1信息要求本系統實現了以下信息:基本信息模塊

3、:包括行政人員信息、醫生信息、護士信息、收費人員信息、病人信息、病房信息、藥品信息。管理信息模塊:人員管理(員工、病人)、藥品管理、住院部管理、收費管理。1.2處理要求要求本系統能夠投入實際的使用并且滿足基本的功能要求。要求具有較高的可靠性、安全性和易維護性,具有較高的可移植性。具體要求如下:(1)基本信息查詢該查詢主要是指對醫生、病人等信息的查詢。(2)醫患病人來醫院看病,為其選擇科室,進而選擇醫生,對病人掛號登陸就醫信息。(3)收費病人通過自己的編號可以到收費窗口查詢和繳納自己的藥費和檢查費。(4)住院對住院的病人在住院部登錄信息,住院部確定病人病房病床,安排所屬區域護士對病人進行輔助治療

4、和看護。1.3安全性和完整性要求該系統對不同人員進行了不同的權限設置:行政人員可以查看醫院數據庫中的任何信息、醫生只能查詢病人及病人住院的信息,收費人員只能查看收費信息。第二章 概念結構設計2.1分E-R流程圖行政人員編號姓名性別聯系方式職務年齡 圖2-1 行政人員概念模型醫生編號姓名性別聯系方式所屬科室年齡圖2-2 醫生概念模型護士編號姓名性別所屬科室年齡 圖2-3 護士概念模型病人編號姓名性別聯系方式所屬科室年齡 圖2-4 病人概念模型檢查、藥品編號名稱價格位置 圖2-5 檢查、藥品概念模型收費人員編號姓名性別年齡 圖2-6 收費人員概念模型病床信息編號所屬科室標志量圖2-7 病房病床概念

5、模型醫患關系醫生編號病人編號看病時間 圖2-8 醫患關系概念模型病人住院醫生編號病人編號護士編號住院時間住院床位號圖2-9 病人住院概念模型收費信息收費員編號編號病人編號藥品編號總價格 圖2-10 收費信息概念模型2.2總E-R流程圖醫生病人醫患收費員住院部繳費住院護士屬于圖2-11 總體E-R概念模型第三章 邏輯結構設計3.1關系模型系統中所涉及的關系如下:行政人員(行政人員編號,行政人員姓名,性別,年齡,職務,聯系方式)醫生(醫生編號,醫生姓名,性別,年齡,所屬科室,聯系方式)病人(病人編號,病人姓名,性別,年齡,就醫科室,聯系方式)住院部(病房病床編號,所屬科室,是否住人)護士(護士編號

6、,護士姓名,性別,年齡,所屬科室)檢查及藥品(檢查或藥品編號,檢查或藥品名稱,單價,檢查或存放地點)收費人員(收費人員編號,收費人員姓名,性別,年齡)醫患(醫生編號,病人編號,就醫時間)收費(收費流水賬號,收費人員編號,病人編號,藥品或檢查編號,數量,價格)住院管理(病床號,病人編號,醫生編號,護士編號,入住時間)3.2設計用戶子模式根據用戶的需求,也為了保護系統的安全性,本系統設計了下面一些視圖:病人基本信息查詢表(病人編號,病人姓名,性別,年齡,就醫科室,聯系方式,主治醫生編號,主治醫生姓名,就醫時間);住院管理查詢表(病床號,病人編號,病人姓名,所屬區域,入住時間,所屬區域護士編號,護士

7、姓名);收費信息表(收費流水賬號,收費人員編號,病人編號,藥品或檢查編號,數量,價格)。第四章 物理結構設計字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Anovarchar10Primary KeyNot null行政人員編號Anamevarchar20 Not null行政人員姓名Asexchar2  行政人員性別Aageint  行政人員年齡Adeptvarchar30行政人員職務Atelvarchar11行政人員聯系方式表4-1 行政人員表表4-2 醫生信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Dnovarchar

8、10Primary KeyNot null醫生編號Dnamevarchar20 Not null醫生姓名Dsexchar2  醫生性別Dageint  醫生年齡Ddeptvarchar30醫生所屬科室Dtelvarchar11醫生聯系方式表4-3護士信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Nnovarchar10Primary KeyNot null護士編號Nnamevarchar20Not null護士姓名Nsexchar2護士性別Nageint護士年齡Ndeptvarchar30Not null護士所屬科室表4-4 病人信

9、息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Pnovarchar10Primary KeyNot null病人編號Pnamevarchar20Not null病人姓名Psexchar2病人性別Pageint病人年齡Pdeptvarchar30Not null病人就醫科室Ptelvarchar11病人聯系方式表4-5 收費人員信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Cnovarchar10Primary KeyNot null收費人員編號Cnamevarchar20Not null收費人員姓名Csexchar2收費人員性別Cageint收費人員年齡表4-6 檢查及藥

10、品信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Dnumvarchar10Primary KeyNot null檢查或藥品編號Dnamvarchar20Not null檢查或藥品名稱Dpricemoney檢查或藥品價格Dstoragevarchar30檢查地點或藥品存放處字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Hbednumberchar6Primary KeyNot null病床編號Hdeptvarchar30 病床所屬科室Hflagint  Not null病床是否住人表4-7 病房病床信息表表4-8 醫患關系表字段名字段類型長度主鍵或

11、外鍵字段值約束對應中文屬性名Dnochar6Primary KeyNot null醫生編號Pnotvarchar30Primary KeyNot null病人編號DPTimeint看病時間字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Pnovarchar10Foreign Key病人編號Dnovarchar10Foreign Key醫生編號Nnovarchar10Foreign Key護士編號HTimeDate入住時間Hbednumberchar6Primary KeyNot null病床號表4-9 住院信息表表4-10 收費信息表字段名字段類型長度主鍵或外鍵字段值約束對應中文屬性名Tn

12、ovarchar10Primary KeyNot null收費流水賬號Cnovarchar10Foreign Key收費人員編號Pnovarchar10Foreign Key病人編號Dnumvarchar10Foreign Key藥品或檢查編號Tnumberint數量Tpricemoney6價格第五章 數據庫實施5.1創建醫院管理系統-創建醫院管理系統數據庫CREATE DATABASE hospitalsystemON(NAME=hospital_data,FILENAME='e:05hospital_data.mdf', SIZE=10MB, MAXSIZE=300MB,

13、FILEGROWTH=10%)LOG ON(NAME=hospital_log,FILENAME='e:05hospital_data.ldf', SIZE=5MB, MAXSIZE=200MB, FILEGROWTH=2MB)-例舉創建各類信息表創建醫生信息表CREATE TABLE Doctor ( Dno VARCHAR(10) PRIMARY KEY, Dname VARCHAR(20), Dsex VARCHAR(2), Dage INT, Ddept VARCHAR(50), Dtel VARCHAR(11);創建病人信息表CREATE TABLE Patient(

14、Pno VARCHAR(10) PRIMARY KEY, Pname VARCHAR(20), Psex VARCHAR(2), Page INT, Ptel VARCHAR(11), Pdept VARCHAR(50);創建醫生病人關系表CREATE TABLE Doctor_Patient(Dno VARCHAR(10), Pno VARCHAR(10), DPTime Date, PRIMARY KEY(Dno,Pno), FOREIGN KEY(Dno) REFERENCES Doctor(Dno), FOREIGN KEY(Pno) REFERENCES Patient(Pno);創

15、建住院病人信息表create table PHouse(Pno VARCHAR(10), Dno VARCHAR(10), Nno VARCHAR(10), HTime Date, Hbednumber CHAR(6) PRIMARY KEY, FOREIGN KEY(Dno) REFERENCES Doctor(Dno), FOREIGN KEY(Pno) REFERENCES Patient(Pno), FOREIGN KEY(Nno) REFERENCES Nurse(Nno);創建收費信息表CREATE TABLE Charge(Tno VARCHAR(10) PRIMARY KEY,

16、 Cno VARCHAR(10), Pno VARCHAR(10), Dnum VARCHAR(10), Tnumber INT, Tprice MONEY, FOREIGN KEY(Cno) REFERENCES Charger(Cno), FOREIGN KEY(Pno) REFERENCES Patient(Pno), FOREIGN KEY(Dnum) REFERENCES Drug(Dnum);5.2創建必要索引CREATE INDEX Administor_INDEX ON Administor(Ano);CREATE INDEX Doctor_INDEX ON Doctor(Dn

17、o);CREATE INDEX Nurse_INDEX ON Nurse(Nno) ;CREATE INDEX Patient_INDEX ON Patient(Pno);CREATE INDEX Drug_INDEX ON Drug(Dnum);CREATE INDEX House_INDEX ON House(Hbednumber);5.3建立視圖-創建醫生信息視圖CREATE VIEW 醫生信息_VIEWASSELECT Dno 醫生編號,Dname 醫生姓名,Dsex 性別,Dage 年齡,Ddept 部門,Dtel 電話FROM Doctor;SELECT * FROM 醫生信息_V

18、IEWWHERE 醫生編號='D001'-創建收費人員信息視圖CREATE VIEW 收費人員信息_VIEWASSELECT Cno 收費人員編號,Cnam 收費人員姓名,Cage 年齡,Csex 性別FROM Charger;SELECT * FROM 收費人員信息_VIEWWHERE 收費人員編號='C001'-創建病人信息視圖CREATE VIEW 病人信息_VIEWASSELECT Patient.Pno 病人編號,Pname 病人姓名,Psex 性別,Page 年齡,Ptel 電話,Pdept 就診科室,Doctor.Dno 主治醫生編號,Dname

19、主治醫生姓名,DPTime 就診時間FROM Patient,Doctor,Doctor_PatientWHERE Patient.Pno=Doctor_Patient.Pno AND Doctor_Patient.Dno=Doctor.Dno; SELECT * FROM 病人信息_VIEW WHERE 病人編號='P001' -創建住院部管理視圖CREATE VIEW 住院部信息_VIEWASSELECT House.Hbednumber 病房床位編號,Patient.Pno 病人編號,Pname 病人姓名,Hdept 所屬區域,Nurse.Nno 所屬護士編號,Nname

20、 所屬護士姓名FROM House,Nurse,Patient,PHouseWHERE House.Hbednumber=PHouse.Hbednumber AND PHouse.Nno=Nurse.Nno AND PHouse.Pno=Patient.Pno; SELECT * FROM 住院部信息_VIEW WHERE 病房床位編號='240902'-創建藥品信息視圖CREATE VIEW 檢查及藥品信息_VIEWASSELECT Dnum 編號,Dnam 名稱,Dprice 單價,Dstorage 位置FROM Drug; -創建收費信息視圖CREATE VIEW 收費信

21、息_VIEWASSELECT Tno 收費編號,Cno 收費員編號,Pno 病人編號,Dnum 藥品編號,Tnumber 數量,Tprice 價格FROM Charge;5.4建立必要的存儲過程及觸發器 觸發器一 檢查病人掛號與醫生科目是否相同CREATE TRIGGER 病人醫生ON Doctor_PatientFOR INSERTASDECLARE DDEPT VARCHAR(20),PDEPT VARCHAR(20),DNO VARCHAR(20),PNO VARCHAR(20)BEGINSELECT DNO = Dno FROM INSERTEDSELECT PNO = Pno FRO

22、M INSERTEDSELECT DDEPT = Ddept FROM Doctor WHERE Dno = DNOSELECT PDEPT = Pdept FROM Patient WHERE Pno = PNOIF(DDEPT = PDEPT)PRINT '插入成功'ELSE BEGINPRINT '無法插入'ROLLBACKENDENDGO觸發器二 檢查病人病房科目是否相,同病床是否有人CREATE TRIGGER 病人住院ON PHouseFOR INSERTASDECLARE BEDNUM VARCHAR(10),PNO VARCHAR(20),PDE

23、PT VARCHAR(30),HDEPT VARCHAR(30),FLAG INTSELECT PNO = Pno FROM INSERTEDSELECT BEDNUM = Hbednumber FROM INSERTEDSELECT PDEPT = Pdept FROM Patient WHERE Pno = PNOSELECT HDEPT = Hdept FROM House WHERE Hbednumber = BEDNUMSELECT FLAG = Hflag FROM House WHERE Hbednumber = BEDNUMIF(FLAG = 1)BEGINPRINT '

24、;病房正在被使用!'ROLLBACKEND ELSE BEGINIF(HDEPT != PDEPT)BEGIN PRINT '無法插入,病人居住科室不對!'ROLLBACKENDELSEUPDATE House SET Hflag = 1 WHERE Hbednumber = BEDNUMENDGO插入收費信息表的存儲過程CREATE PROC 收費 TNO VARCHAR(10),CNO VARCHAR(10),PNO VARCHAR(10),DNUM VARCHAR(10),TNUMBER INTASDECLARE TPRICE MONEY,DPRICE MONEY

25、 SELECT DPRICE = Dprice FROM Drug WHERE Dnum = DNUMSET TPRICE = TNUMBER * DPRICEINSERT INTO Charge VALUES(TNO,CNO,PNO,DNUM,TNUMBER,TPRICE)GOEXEC 收費 '1111111111','C001','P001','000123',4EXEC 收費'1111111112','C001','P002','000127',3EXEC 收費

26、'1111111113','C001','P003','000901',1SELECT * FROM Charge;第六章 數據庫應用系統的實施和維護用戶登陸界面請選擇登陸身份行政領導醫生收費員輸入員工編號退出確認圖6-1 用戶登錄界面歡迎進入愛民醫院管理系統請選擇所需功能員工管理病人管理住院部管理收費管理檢查及藥品管理返回上一級圖6-2 系統主界面員工管理系統請選擇所需項醫生管理護士管理收費人員管理返回上一級圖6-3 員工管理界面醫生管理請輸入醫生編號確認返回上一級圖6-4 醫生信息查詢窗口通過本窗體可以查詢醫生的基本信息。-創

27、建醫生信息視圖CREATE VIEW 醫生信息_VIEWASSELECT Dno 醫生編號,Dname 醫生姓名,Dsex 性別,Dage 年齡,Ddept 部門,Dtel 電話FROM Doctor;SELECT * FROM 醫生信息_VIEWWHERE 醫生編號='D001'病人管理請輸入病人編號確認返回上一級圖6-5 病人信息查詢窗口通過本窗口可以對病人的信息進行查詢(包括:病人基本信息、主治醫生及就醫時間)。-創建病人信息視圖CREATE VIEW 病人信息_VIEWASSELECT Patient.Pno 病人編號,Pname 病人姓名,Psex 性別,Page 年

28、齡,Ptel 電話,Pdept 就診科室,Doctor.Dno 主治醫生編號,Dname 主治醫生姓名,DPTime 就診時間FROM Patient,Doctor,Doctor_PatientWHERE Patient.Pno=Doctor_Patient.Pno AND Doctor_Patient.Dno=Doctor.Dno; SELECT * FROM 病人信息_VIEW WHERE 病人編號='P001'住院部管理請輸入所要查詢的房間號確認返回上一級圖6-6 住院信息查詢窗口通過本窗口可以查詢病房的信息(包括:病床基本信息、病人信息、所屬護士信息)。-創建住院部管理

29、視圖CREATE VIEW 住院部信息_VIEWASSELECT House.Hbednumber 病房床位編號,Patient.Pno 病人編號,Pname 病人姓名,Hdept 所屬區域,Nurse.Nno 所屬護士編號,Nname 所屬護士姓名FROM House,Nurse,Patient,PHouseWHERE House.Hbednumber=PHouse.Hbednumber AND PHouse.Nno=Nurse.Nno AND PHouse.Pno=Patient.Pno; SELECT * FROM 住院部信息_VIEW WHERE 病房床位編號='240902&

30、#39; DROP VIEW 住院部信息_VIEW;收費管理返回上一級輸入病人編號確認圖6-7 收費信息查詢窗口通過本窗口可以查到病人所要繳納費用的具體信息(如具體檢查費用、藥品費用等)。-創建收費信息視圖CREATE VIEW 收費信息_VIEWASSELECT Tno 收費編號,Cno 收費員編號,Pno 病人編號,Dnum 藥品編號,Tnumber 數量,Tprice 價格FROM Charge;SELECT * FROM 收費信息_VIEWWHERE 病人編號='P001'DROP VIEW 收費信息_VIEW;檢查及藥品管理輸入編號返回上一級確認圖6-8 檢查項目及藥

31、品信息查詢窗口通過本窗口可以查詢到藥品的具體信息(如數量、編號、單價、存儲位置等),還可以查到檢查項目的具體信息。-創建檢查藥品信息視圖CREATE VIEW 檢查及藥品信息_VIEWASSELECT Dnum 編號,Dnam 名稱,Dprice 單價,Dstorage 位置FROM Drug; SELECT * FROM 檢查及藥品信息_VIEW WHERE 編號='000123'總 結本次課程設計根據其具體情況,設計完成的是醫院管理系統。通過本次課程設計鞏固了剛學習的數據庫理論知識,同時加強了對數據庫應用方面的理解,深刻體會到了理論結合實踐的學習方法。同時,在本次課程設計的

32、完成過程中,學會了通過Microsoft Office Excel和C#軟件來畫窗體,用Word畫E-R圖。并且對數據庫設計步驟更加熟悉,進一步學習了需求分析、概念結構設計、數據字典、系統功能模塊、數據庫完整性和安全性還有SQL語句的設計等的應用。當然,由于時間倉促和自身相關知識尚且不足,本次課程設計也存在不少不足之處。比如在考慮模塊設計和各屬性、實體間的關系時還不夠完善,還有畫出的圖中可能存在不當的部分,編寫的SQL語句也可能不夠精準等。這些不足都是我在今后學習數據庫相關知識時候需要加強的地方。本次課程設計學到了很多方面的知識,同時也在老師的幫助下順利完成了。希望老師多多給予指導,在以后的學

33、習、工作中,我會更加的努力致 謝本次數據庫課程設計的題目是醫院管理系統,在做需求分析時,我仔細思考了前一段時間我班同學住院時的具體細節,同時也感謝多名同學的鼎力相助,他們的建議使我本次課設能夠更好的完成。在編程過程中,我遇到了很多問題,能解決這些問題,是因為我獲得了同學的幫助和老師的指導。我感謝你們,是你們幫助我將問題解決掉,讓我完成了程序,收獲了知識,也讓我知道團隊合作的重要性。在編寫和調試的過程中,我們討論和爭辯的時刻是我這半年來最珍貴的記憶。通過這次課程設計,我知道了自己尚存在很多的不足,專業知識的欠缺。在今后的學習生活里,我會向你們學習,向你們看齊,繼續努力。參考文獻1 王珊,薩師煊.

34、數據庫系統概論M.北京:高等教育出版社,1997:91-1322 陳慧娟.數據庫原理與應用北京:科學出版社,20063 狄文輝數據庫原理與應用:SQL Server北京:清華大學出版社,20084 張龍祥等.數據庫原理與設計.北京:人民郵電出版社,20025 陳志泊等.數據庫原理及應用教程.北京:人民郵電出版社,20026 David J.Kruglinski 潘愛民、王國印譯.Visual C+技術內幕(第四版). 清華大學出版社.19997 魏亮,李春葆編著.Visual C#程序設計例學與實踐.清華大學出版社 .20068 啟明工作室.VISUAL C# SQL SERVER數據庫應用系

35、統開發與實例.人民郵電出版社20059 Paul J.Fortier等著.數據庫技術大全.林瑤等譯.北京:電子工業出版社,199910 C.J.Date著.數據庫系統導論.孟小峰等譯.北京:機械工業出版社,2000附 錄USE MASTERGOCREATE DATABASE hospitalsystemON(NAME=hospital_data,FILENAME='e:05hospital_data.mdf', SIZE=10MB, MAXSIZE=300MB, FILEGROWTH=10%)LOG ON(NAME=hospital_log,FILENAME='e:05

36、hospital_data.ldf', SIZE=5MB, MAXSIZE=200MB, FILEGROWTH=2MB)USE hospitalsystemGO-1.創建行政人員信息表CREATE TABLE Administor(Ano VARCHAR(10) PRIMARY KEY, Aname VARCHAR(20), Asex VARCHAR(2), Aage INT, Adept VARCHAR(50), Atel VARCHAR(11);-2.創建醫生信息表CREATE TABLE Doctor ( Dno VARCHAR(10) PRIMARY KEY, Dname VA

37、RCHAR(20), Dsex VARCHAR(2), Dage INT, Ddept VARCHAR(50), Dtel VARCHAR(11);-3.創建護士信息表CREATE TABLE Nurse(Nno VARCHAR(10) PRIMARY KEY, Nname VARCHAR(20), Nsex VARCHAR(2), Nage INT, Ndept VARCHAR(30);-4.創建病人信息表CREATE TABLE Patient(Pno VARCHAR(10) PRIMARY KEY, Pname VARCHAR(20), Psex VARCHAR(2), Page INT

38、, Ptel VARCHAR(11), Pdept VARCHAR(50);-5.創建各項檢查及藥品信息表CREATE TABLE Drug(Dnum VARCHAR(10) PRIMARY KEY, Dnam VARCHAR(20), Dprice MONEY, Dstorage VARCHAR(30);-6.創建住院部病房類型信息表(病房病床號/所屬區域/標識量)CREATE TABLE House(Hbednumber CHAR(6) PRIMARY KEY, Hdept VARCHAR(30), Hflag INT NOT NULL);-7.創建醫生病人關系表CREATE TABLE

39、Doctor_Patient(Dno VARCHAR(10), Pno VARCHAR(10), DPTime Date, PRIMARY KEY(Dno,Pno), FOREIGN KEY(Dno) REFERENCES Doctor(Dno), FOREIGN KEY(Pno) REFERENCES Patient(Pno);-觸發器一 檢查病人掛號與醫生科目是否相同CREATE TRIGGER 病人醫生ON Doctor_PatientFOR INSERTASDECLARE DDEPT VARCHAR(20),PDEPT VARCHAR(20),DNO VARCHAR(20),PNO V

40、ARCHAR(20)BEGINSELECT DNO = Dno FROM INSERTEDSELECT PNO = Pno FROM INSERTEDSELECT DDEPT = Ddept FROM Doctor WHERE Dno = DNOSELECT PDEPT = Pdept FROM Patient WHERE Pno = PNOIF(DDEPT = PDEPT)PRINT '插入成功'ELSE BEGINPRINT '無法插入'ROLLBACKENDENDGO-8.創建住院病人信息表create table PHouse(Pno VARCHAR(1

41、0), Dno VARCHAR(10), Nno VARCHAR(10), HTime Date, Hbednumber CHAR(6) PRIMARY KEY, FOREIGN KEY(Dno) REFERENCES Doctor(Dno), FOREIGN KEY(Pno) REFERENCES Patient(Pno), FOREIGN KEY(Nno) REFERENCES Nurse(Nno);CREATE TRIGGER 病人住院ON PHouseFOR INSERTASDECLARE BEDNUM VARCHAR(10),PNO VARCHAR(20),PDEPT VARCHAR

42、(30),HDEPT VARCHAR(30),FLAG INTSELECT PNO = Pno FROM INSERTEDSELECT BEDNUM = Hbednumber FROM INSERTEDSELECT PDEPT = Pdept FROM Patient WHERE Pno = PNOSELECT HDEPT = Hdept FROM House WHERE Hbednumber = BEDNUMSELECT FLAG = Hflag FROM House WHERE Hbednumber = BEDNUMIF(FLAG = 1)BEGINPRINT '病房正在被使用!&

43、#39;ROLLBACKEND ELSE BEGINIF(HDEPT != PDEPT)BEGIN PRINT '無法插入,病人居住科室不對!'ROLLBACKENDELSEUPDATE House SET Hflag = 1 WHERE Hbednumber = BEDNUMENDGOINSERT INTO PHouse VALUES('P001','D001','N003','2011-5-12','240902');INSERT INTO PHouse VALUES('P001'

44、;,'D001','N003','2011-6-20','241002');SELECT * FROM House ;SELECT * FROM PHouse ;-9.創建收費人員信息表CREATE TABLE Charger(Cno VARCHAR(10)PRIMARY KEY, Cnam VARCHAR(20), Cage INT, Csex CHAR(2) );-10.創建收費信息表CREATE TABLE Charge(Tno VARCHAR(10) PRIMARY KEY, Cno VARCHAR(10), Pno VA

45、RCHAR(10), Dnum VARCHAR(10), Tnumber INT, Tprice MONEY, FOREIGN KEY(Cno) REFERENCES Charger(Cno), FOREIGN KEY(Pno) REFERENCES Patient(Pno), FOREIGN KEY(Dnum) REFERENCES Drug(Dnum);-插入收費信息表的存儲過程CREATE PROC 收費 TNO VARCHAR(10),CNO VARCHAR(10),PNO VARCHAR(10),DNUM VARCHAR(10),TNUMBER INTASDECLARE TPRICE

46、 MONEY,DPRICE MONEY SELECT DPRICE = Dprice FROM Drug WHERE Dnum = DNUMSET TPRICE = TNUMBER * DPRICEINSERT INTO Charge VALUES(TNO,CNO,PNO,DNUM,TNUMBER,TPRICE)GOEXEC 收費 '1111111111','C001','P001','000123',4EXEC 收費'1111111112','C001','P002','000127',3EXEC 收費'1111111113','C001','P003','000901',1SELECT * FROM Charge;/*創建索引*/CREATE INDEX Administor_INDEX ON Administor(Ano);CREATE INDE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論