· 7 years ago · Nov 29, 2018, 09:46 PM
1/* ---------------------------------------------------- */
2/* Generated by Enterprise Architect Version 12.0 */
3/* Created On : 14-nov-2018 22:00:45 */
4/* DBMS : PostgreSQL */
5/* ---------------------------------------------------- */
6
7/* Drop Sequences for Autonumber Columns */
8
9DROP SEQUENCE IF EXISTS "isik_isik_id_seq"
10;
11
12DROP SEQUENCE IF EXISTS "klient_isik_id_seq"
13;
14
15/* Drop Tables */
16
17DROP TABLE IF EXISTS "Isik" CASCADE
18;
19
20DROP TABLE IF EXISTS "Tootaja" CASCADE
21;
22
23DROP TABLE IF EXISTS "Tootaja_seisundi_liik" CASCADE
24;
25
26DROP TABLE IF EXISTS "Riik" CASCADE
27;
28
29DROP TABLE IF EXISTS "Prooviruumi_seisundi_liik" CASCADE
30;
31
32DROP TABLE IF EXISTS "Prooviruumi_kategooria_tyyp" CASCADE
33;
34
35DROP TABLE IF EXISTS "Prooviruumi_kategooria" CASCADE
36;
37
38DROP TABLE IF EXISTS "Kliendi_seisundi_liik" CASCADE
39;
40
41DROP TABLE IF EXISTS "Isiku_seisundi_liik" CASCADE
42;
43
44DROP TABLE IF EXISTS "Hoone" CASCADE
45;
46
47DROP TABLE IF EXISTS "Amet" CASCADE
48;
49
50DROP TABLE IF EXISTS "Klient" CASCADE
51;
52
53DROP TABLE IF EXISTS "Prooviruumi_kategooria_omamine" CASCADE
54;
55
56DROP TABLE IF EXISTS "Prooviruum" CASCADE
57;
58
59/* Create Tables */
60
61CREATE TABLE "Isik"
62(
63 "meil" varchar(60) NOT NULL,
64 "eesnimi" varchar(60) NOT NULL,
65 "elukoht" varchar(60) NOT NULL,
66 "isikukood" varchar(60) NOT NULL,
67 "parool" varchar(60) NOT NULL,
68 "perenimi" varchar(60) NOT NULL,
69 "reg_aeg" timestamp NOT NULL DEFAULT localtimestamp,
70 "synni_kp" date NOT NULL,
71 "riik_kood" char(3) NOT NULL,
72 "isik_seisund_kood" smallint NOT NULL DEFAULT 1,
73 "isik_id" bigint DEFAULT nextval(('isik_isik_id_seq'::text)::regclass) PRIMARY KEY,
74 CONSTRAINT "CHK_Isik_meil_sisaldab_ainult_yhte_at_marki" CHECK (meil::text LIKE '%@%' AND NOT LIKE '%@%@%'),
75 CONSTRAINT "Isik_eesnimi_mittetyhi" CHECK (CHAR_LENGTH(eesnimi) > 0),
76 CONSTRAINT "Isik_eesnimi_voi_perenimi_registreeritud" CHECK (eesnimi IS NOT NULL OR perenimi IS NOT NULL),
77 CONSTRAINT "Isik_elukoht_sisaldab_tahte" CHECK (elukoht~'^.*[[:alpha:]]+.*$'),
78 CONSTRAINT "Isik_perenimi_mittetyhi" CHECK (perenimi!~'^[[:space:]]*$'),
79 CONSTRAINT "Isik_reg_aeg_sobivas_vahemikus" CHECK (reg_aeg BETWEEN '1900-01-01 00:00:00'::timestamp AND '2100-12-31 23:59:59'::timestamp),
80 CONSTRAINT "Isik_synni_kp_sobivas_vahemikus" CHECK (synni_kp BETWEEN '1900-01-01'::date AND '2100-12-31'::date),
81 CONSTRAINT "Isik_synni_kp_vaiksem_kui_reg_aeg" CHECK (synni_kp<reg_aeg),
82 CONSTRAINT "FK_Isik_Isiku_seisundi_liik" FOREIGN KEY ("isik_seisund_kood") REFERENCES "Isiku_seisundi_liik" ("isik_seisund_kood") ON DELETE No Action ON UPDATE Cascade,
83 CONSTRAINT "FK_riik_kood" FOREIGN KEY ("riik_kood") REFERENCES "Riik" ("riik_kood") ON DELETE No Action ON UPDATE Cascade
84)
85;
86
87CiREATE TABLE "Tootaja"
88(
89 "amet_kood" Integer NOT NULL,
90 "mentor" integer NULL,
91 "isik_kood" integer NOT NULL,
92 "tootaja_seisund_liik_kood" smallint NOT NULL DEFAULT 1,
93 CONSTRAINT "PK_Tootaja" PRIMARY KEY ("isik_kood"),
94 CONSTRAINT "FK_Tootaja_Amet" FOREIGN KEY ("amet_kood") REFERENCES "Amet" ("amet_kood") ON DELETE No Action ON UPDATE Cascade,
95 CONSTRAINT "FK_Tootaja_Tootaja_seisundi_liik" FOREIGN KEY ("tootaja_seisund_liik_kood") REFERENCES "Tootaja_seisundi_liik" ("tootaja_seisund_liik_kood") ON DELETE No Action ON UPDATE Cascade,
96 CONSTRAINT "FK_Tootaja_Isik" FOREIGN KEY ("isik_kood") REFERENCES "Isik" ("isik_id") ON DELETE No Action ON UPDATE No Action
97)
98;
99
100CREATE TABLE "Tootaja_seisundi_liik"
101(
102 "tootaja_seisund_liik_kood" Integer NOT NULL,
103 "nimetus" varchar(50) NOT NULL,
104 CONSTRAINT "PK_Tootaja_seisundi_liik" PRIMARY KEY ("tootaja_seisund_liik_kood")
105)
106;
107
108CREATE TABLE "Riik"
109(
110 "riik_kood" char(3) NOT NULL,
111 "nimetus" varchar(50) NOT NULL,
112 CONSTRAINT "PK_riik_kood" PRIMARY KEY ("riik_kood"),
113 CONSTRAINT "riigi_nimetus_peab_olema_kolm_suurt_tahte" CHECK (riik_kood~'^[A-Z]{3}$')
114)
115;
116
117CREATE TABLE "Prooviruumi_seisundi_liik"
118(
119 "ruum_seisund_liik_kood" Integer NOT NULL,
120 "ruum_seisund_liik" Text NOT NULL,
121 CONSTRAINT "PK_Prooviruumi_seisundi_liik" PRIMARY KEY ("ruum_seisund_liik_kood")
122)
123;
124
125CREATE TABLE "Prooviruumi_kategooria_tyyp"
126(
127 "prooviruumi_kategooria_kood" Integer NOT NULL,
128 "prooviruumi_kategooria_tyyp_kood" Integer NOT NULL,
129 "nimetus" Text NOT NULL,
130 CONSTRAINT "PK_Prooviruumi_kategooria_tyyp" PRIMARY KEY ("prooviruumi_kategooria_kood")
131)
132;
133
134CREATE TABLE "Prooviruumi_kategooria"
135(
136 "Prooviruumi_kategooria_kood" Integer NOT NULL,
137 "nimetus" Text NOT NULL,
138 "Prooviruumi_kategooria_tyyp_kood" Integer NOT NULL,
139 CONSTRAINT "PK_Prooviruumi_kategooria" PRIMARY KEY ("Prooviruumi_kategooria_kood"),
140 CONSTRAINT "FK_Prooviruumi_kategooria_Prooviruumi_kategooria_t" FOREIGN KEY ("Prooviruumi_kategooria_kood") REFERENCES "Prooviruumi_kategooria_tyyp" ("prooviruumi_kategooria_kood") ON DELETE No Action ON UPDATE Cascade
141)
142;
143
144CREATE TABLE "Kliendi_seisundi_liik"
145(
146 "klient_seisund_liik_kood" Integer NOT NULL,
147 "nimetus" Text NOT NULL,
148 CONSTRAINT "PK_Kliendi_seisundi_liik" PRIMARY KEY ("klient_seisund_liik_kood"),
149 CONSTRAINT "AK_Prooviruumi_seisundi_liik" UNIQUE ("nimetus")
150)
151;
152
153CREATE TABLE "Isiku_seisundi_liik"
154(
155 "isik_seisund_kood" Integer NOT NULL,
156 "nimetus" Text NOT NULL,
157 CONSTRAINT "PK_Isiku_seisundi_liik" PRIMARY KEY ("isik_seisund_kood")
158)
159;
160
161CREATE TABLE "Hoone"
162(
163 "hoone_kood" VARCHAR(4) NOT NULL,
164 "nimetus" VARCHAR(50) NOT NULL,
165 CONSTRAINT "PK_Hoone" PRIMARY KEY ("hoone_kood")
166)
167;
168
169CREATE TABLE "Amet"
170(
171 "kirjeldus" varchar() NULL,
172 "amet_kood" Integer NOT NULL,
173 "nimetus" varchar() NOT NULL,
174 CONSTRAINT "PK_Amet" PRIMARY KEY ("amet_kood")
175)
176;
177
178CREATE TABLE "Klient"
179(
180 "kliendi_kood" integer NOT NULL,
181 "on_nous_tylitamisega" boolean NOT NULL,
182 "klient_seisund_liik_kood" Integer NOT NULL,
183 "isik_id" serial NOT NULL DEFAULT nextval(('klient_isik_id_seq')::regclass),
184 CONSTRAINT "PK_Klient" PRIMARY KEY ("isik_id"),
185 CONSTRAINT "FK_Klient_Kliendi_seisundi_liik" FOREIGN KEY ("klient_seisund_liik_kood") REFERENCES "Kliendi_seisundi_liik" ("klient_seisund_liik_kood") ON DELETE No Action ON UPDATE Cascade,
186 CONSTRAINT "FK_Klient_Isik" FOREIGN KEY ("isik_id") REFERENCES "Isik" ("isik_id") ON DELETE No Action ON UPDATE No Action
187)
188;
189
190CREATE TABLE "Prooviruum"
191(
192 "prooviruumi_kood" Integer NOT NULL,
193 "prooviruumi_nimetus" Text NOT NULL,
194 "reg_aeg" timestamp NOT NULL DEFAULT localtimestamp,
195 "registreerija_id" Integer NOT NULL,
196 "hoone_kood" Text NOT NULL,
197 "prooviruumi_seisundi_liik_kood" Integer NULL,
198 "prooviruumi_voimekus" Integer NULL,
199 CONSTRAINT "PK_Prooviruum" PRIMARY KEY ("prooviruumi_kood"),
200 CONSTRAINT "Prooviruum_voimekus_suurem_nullist" CHECK (prooviruumi_v�imekus > 0),
201 CONSTRAINT "Prooviruum_reg_aeg_vahemikus" CHECK (reg_aeg BETWEEN '1900-01-01 00:00:00'::timestamp AND '2100-12-31 23:59:59'::timestamp),
202 CONSTRAINT "FK_Prooviruum_Prooviruumi_seisundi_liik" FOREIGN KEY ("prooviruumi_seisundi_liik_kood") REFERENCES "Prooviruumi_seisundi_liik" ("ruum_seisund_liik_kood") ON DELETE Cascade ON UPDATE Cascade,
203 CONSTRAINT "FK_Prooviruum_Hoone" FOREIGN KEY ("hoone_kood") REFERENCES "Hoone" ("hoone_kood") ON DELETE No Action ON UPDATE Cascade,
204 CONSTRAINT "FK_Prooviruum_Tootaja" FOREIGN KEY ("registreerija_id") REFERENCES "Tootaja" ("isik_kood") ON DELETE No Action ON UPDATE No Action
205)
206;
207
208
209CREATE TABLE "Prooviruumi_kategooria_omamine"
210(
211 "prooviruumi_kategooria_kood" Integer NOT NULL,
212 "nimetus" Text NOT NULL,
213 "prooviruumi_kategooria_tyyp_kood" Integer NOT NULL,
214 CONSTRAINT "PK_Prooviruumi_kategooria_omamine" PRIMARY KEY ("prooviruumi_kategooria_kood"),
215 CONSTRAINT "FK_Prooviruumi_kategooria_omamine_Prooviruum" FOREIGN KEY ("prooviruumi_kategooria_kood") REFERENCES "Prooviruum" ("prooviruumi_kood") ON DELETE No Action ON UPDATE Cascade,
216 CONSTRAINT "FK_Prooviruumi_kategooria_omamine_Prooviruumi_kate" FOREIGN KEY ("nimetus") REFERENCES "Prooviruumi_kategooria" ("Prooviruumi_kategooria_kood") ON DELETE No Action ON UPDATE Cascade
217)
218;
219
220/* Create Table Comments, Sequences for Autonumber Columns */
221
222CREATE SEQUENCE "isik_isik_id_seq" INCREMENT 1 START 1
223;
224
225CREATE SEQUENCE "klient_isik_id_seq" INCREMENT 1 START 1
226;
227
228/* Create Primary Keys, Indexes, Uniques, Checks */
229
230CREATE INDEX "IXFK_Isik_Isiku_seisundi_liik" ON "Isik" ("isik_seisund_kood" ASC)
231;
232
233CREATE INDEX "IXFK_Tootaja_Tootaja_seisundi_liik" ON "Tootaja" ("tootaja_seisund_liik_kood" ASC)
234;
235
236CREATE INDEX "IXFK_Klient_Kliendi_seisundi_liik" ON "Klient" ("klient_seisund_liik_kood" ASC)
237;
238
239CREATE INDEX "IXFK_Prooviruum_Prooviruumi_seisundi_liik" ON "Prooviruum" ("prooviruumi_seisundi_liik_kood" ASC)
240;