-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathHospitalCreate.sql
More file actions
116 lines (103 loc) · 4.46 KB
/
Copy pathHospitalCreate.sql
File metadata and controls
116 lines (103 loc) · 4.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
--drop
DROP TABLE zab_prac CASCADE CONSTRAINTS;
DROP TABLE zabiegi CASCADE CONSTRAINTS;
DROP TABLE kart_lek CASCADE CONSTRAINTS;
DROP TABLE leki CASCADE CONSTRAINTS;
DROP TABLE badanie CASCADE CONSTRAINTS;
DROP TABLE karta_choroby CASCADE CONSTRAINTS;
DROP TABLE pacjent CASCADE CONSTRAINTS;
DROP TABLE sala CASCADE CONSTRAINTS;
DROP TABLE dyzur CASCADE CONSTRAINTS;
DROP TABLE lekarz CASCADE CONSTRAINTS;
DROP TABLE pracownik CASCADE CONSTRAINTS;
DROP TABLE oddzial CASCADE CONSTRAINTS;
--create
CREATE TABLE oddzial (
id_oddzialu NUMBER CONSTRAINT oddzial_pk PRIMARY KEY,
nazwa_oddzialu VARCHAR2(100) NOT NULL CONSTRAINT nazwa_oddzialu_unique UNIQUE,
miasto VARCHAR2(50) NOT NULL,
ulica VARCHAR2(50) NOT NULL,
number_budynku NUMBER(3) NOT NULL,
kod_pocztowy VARCHAR2(6) NOT NULL
);
CREATE TABLE pracownik (
id_pracownika NUMBER CONSTRAINT pracownik_pk PRIMARY KEY,
id_oddzialu NUMBER NOT NULL CONSTRAINT oddzial_pracownik_fk REFERENCES oddzial(id_oddzialu),
PESEL NUMBER(11) NOT NULL CONSTRAINT pracownik_pesel_unique UNIQUE,
imie VARCHAR2(20) NOT NULL,
nazwisko VARCHAR2(50) NOT NULL,
stanowisko VARCHAR2(20) NOT NULL,
wynagrodzenie NUMBER NOT NULL CONSTRAINT wynagrodzenie_check CHECK(wynagrodzenie > 0 AND wynagrodzenie < 99999),
numer_telefonu VARCHAR2(9),
premia NUMBER DEFAULT 0
);
CREATE TABLE lekarz (
id_lekarza NUMBER CONSTRAINT lekarz_pk PRIMARY KEY,
id_pracownika NUMBER NOT NULL CONSTRAINT lekarz_pracownik_fk REFERENCES pracownik(id_pracownika),
specjalizacja VARCHAR2(20) NOT NULL,
gabinet VARCHAR2(4) NOT NULL, --LUB NUMBER SAM NIE WIEM BO MOzE BYc POKoJ 120c
miejsce_parkingowe VARCHAR2(4) --TO CO WYzEJ
);
CREATE TABLE dyzur (
id_lekarza NUMBER NOT NULL CONSTRAINT lekarz_dyzur_fk REFERENCES lekarz(id_lekarza),
data_rozpoczecia TIMESTAMP(0) DEFAULT SYSDATE NOT NULL,
data_zakonczenia TIMESTAMP(0),
uwagi VARCHAR2(300)
);
CREATE TABLE sala (
id_sali NUMBER CONSTRAINT sala_pk PRIMARY KEY,
id_oddzialu NUMBER NOT NULL CONSTRAINT sala_oddzial_fk REFERENCES oddzial(id_oddzialu),
numer_sali VARCHAR2(4) NOT NULL, --LUB NUMBER
rodzaj_sali VARCHAR2(20) NOT NULL,
liczba_lozek NUMBER,
opiekun NUMBER CONSTRAINT opiekun_fk REFERENCES lekarz(id_lekarza)
);
CREATE TABLE pacjent (
PESEL NUMBER(11) CONSTRAINT pacjent_pk PRIMARY KEY,
imie VARCHAR2(20) NOT NULL,
nazwisko VARCHAR2(50) NOT NULL,
data_rejestracji DATE DEFAULT SYSDATE NOT NULL,
numer_telefonu VARCHAR2(9)
);
CREATE TABLE karta_choroby (
id_karty NUMBER CONSTRAINT karta_chorby_pk PRIMARY KEY,
pacjent NUMBER(11) NOT NULL CONSTRAINT karta_chorby_fk REFERENCES pacjent(PESEL),
lekarz_prowadzacy NUMBER CONSTRAINT lekarz_prowadzacy_fk REFERENCES lekarz(id_lekarza),
sala NUMBER CONSTRAINT karta_chory_sala_fk REFERENCES sala(id_sali),
data_przyjecia TIMESTAMP(0) DEFAULT SYSDATE NOT NULL,
data_wypisu TIMESTAMP(0) DEFAULT SYSDATE,
diagnoza VARCHAR2(100),
objawy VARCHAR2(500)
);
CREATE TABLE badanie (
id_karty NOT NULL CONSTRAINT badanie_karta_fk REFERENCES karta_choroby(id_karty),
id_pracownika NOT NULL CONSTRAINT badanie_pracownik_fk REFERENCES pracownik(id_pracownika),
data_badania TIMESTAMP(0) DEFAULT SYSDATE NOT NULL,
wzrost NUMBER(3) NOT NULL,
tetno VARCHAR2(10) NOT NULL,
uwagi VARCHAR2(300),
badanie_wstepne_flg NUMBER(1) DEFAULT 0
);
CREATE TABLE leki (
id_leku NUMBER CONSTRAINT lek_pk PRIMARY KEY,
nazwa_leku VARCHAR2(30) NOT NULL,
zalecanie_dawkowanie VARCHAR2(20) NOT NULL,
dostepnosc NUMBER NOT NULL CONSTRAINT dostepnosc_check CHECK(dostepnosc >=0),
uwagi VARCHAR2(300)
);
CREATE TABLE kart_lek (
id_karty NUMBER NOT NULL CONSTRAINT lek_id_karty_fk REFERENCES karta_choroby(id_karty),
podany_lek NUMBER NOT NULL CONSTRAINT podany_lek_fk REFERENCES leki(id_leku),
podana_dawnka VARCHAR2(10) NOT NULL
);
CREATE TABLE zabiegi (
id_zabiegu NUMBER CONSTRAINT zabiegi_pk PRIMARY KEY,
data_zabiegu TIMESTAMP(0) DEFAULT SYSDATE NOT NULL,
typ_zabiegu VARCHAR2(20) NOT NULL,
spodziewane_zakonczenie TIMESTAMP(0) NOT NULL,
sala NUMBER NOT NULL CONSTRAINT zabieg_sala_fk REFERENCES sala(id_sali)
);
CREATE TABLE zab_prac (
id_zabiegu NUMBER NOT NULL CONSTRAINT zabieg_fk REFERENCES zabiegi(id_zabiegu),
id_pracownika NUMBER NOT NULL CONSTRAINT zabieg_pracownik_fk REFERENCES pracownik(id_pracownika)
);