· 9 years ago · Nov 20, 2016, 06:04 PM
1DROP SEQUENCE IF EXISTS "isik_isik_id_seq";
2
3DROP TABLE IF EXISTS "Amet" CASCADE;
4
5DROP TABLE IF EXISTS "Isik" CASCADE
6;
7
8DROP TABLE IF EXISTS "Isiku_seisundi_liik" CASCADE
9;
10
11DROP TABLE IF EXISTS "Kliendi_seisundi_liik" CASCADE
12;
13
14DROP TABLE IF EXISTS "Klient" CASCADE
15;
16
17DROP TABLE IF EXISTS "Riik" CASCADE
18;
19
20DROP TABLE IF EXISTS "Toode" CASCADE
21;
22
23DROP TABLE IF EXISTS "Tootaja" CASCADE
24;
25
26DROP TABLE IF EXISTS "Tootaja_seisundi_liik" CASCADE
27;
28
29DROP TABLE IF EXISTS "Toote_kategooria" CASCADE
30;
31
32DROP TABLE IF EXISTS "Toote_kategooria_omamine" CASCADE
33;
34
35DROP TABLE IF EXISTS "Toote_seisundi_liik" CASCADE
36;
37
38CREATE TABLE "Amet"
39(
40 "amet_kood" smallint NOT NULL,
41 "nimetus" varchar(50) NOT NULL,
42 "kirjeldus" Text,
43 CONSTRAINT "Amet_PK_amet_kood" PRIMARY KEY ("amet_kood"),
44 CONSTRAINT "Amet_UQ_nimetus" UNIQUE ("nimetus"),
45 CONSTRAINT "Amet_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
46 CONSTRAINT "Amet_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
47)
48;
49
50CREATE TABLE "Isik"
51(
52 "isik_id" serial NOT NULL DEFAULT nextval(('"isik_isik_id_seq"'::text)::regclass),
53 "e_meil" varchar(254) NOT NULL,
54 "isikukood" varchar(50) NOT NULL,
55 "riik_kood" char(3) NOT NULL,
56 "seisundi_liik_kood" smallint NOT NULL DEFAULT 1,
57 "eesnimi" varchar(255) NOT NULL,
58 "elukoht" varchar(254) ,
59 "parool" varchar(100) NOT NULL,
60 "reg_aeg" timestamp NOT NULL DEFAULT date_trunc('minute',LOCALTIMESTAMP) ,
61 "sunni_kp" date NOT NULL,
62 "perenimi" varchar(255) ,
63 CREATE INDEX "Isik_IDX_Isiku_seisundi_liik" ("seisundi_liik_kood" ASC),
64 CONSTRAINT "Isik_PK_isik_id" PRIMARY KEY ("isik_id"),
65 CONSTRAINT "Isik_UQ_isikukood_riik_kood" UNIQUE ("isikukood","riik_kood"),
66 CONSTRAINT "Isik_UQ_e_meil" UNIQUE ("e_meil"),
67 CREATE INDEX "Isik_IDX_isikukoodi_riik" ("riik_kood" ASC),
68 CONSTRAINT "Isik_CHK_Eesnimi" CHECK (eesnimi!~'^[[:space:]]*$'),
69 CONSTRAINT "Isik_CHK_Perenimi" CHECK (perenimi!~'^[[:space:]]*$'),
70 CONSTRAINT "Isik_CHK_Synni_kp" CHECK (sunni_kp > '31-12-1900' AND sunni_kp < '31-12-2100'),
71 CONSTRAINT "Isik_CHK_Elukoht" CHECK (elukoht!~'^[[:space:]]*$'),
72 CONSTRAINT "Isik_CHK_E_meil" CHECK (e_meil !~ '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'),
73 CONSTRAINT "Isik_CHK_Parool" CHECK (parool!~'^[[:space:]]*$'),
74 CONSTRAINT "Isik_CHK_Reg_aeg" CHECK (reg_aeg > '01-01-2010 00:00' AND reg_aeg < '31-12-2100 23:59'),
75 CONSTRAINT "Isik_CHK_Reg_Aeg_SuuremVordne_Synni_Kp" CHECK (reg_aeg >= sunni_kp),
76 CREATE INDEX "Isik_IDX_eesnimi_perenimi" ("perenimi" ASC,"eesnimi" ASC),
77 CONSTRAINT "Isik_FK_isiku_seisundi_liik" FOREIGN KEY ("seisundi_liik_kood") REFERENCES "Isiku_seisundi_liik" ("seisundi_liik_kood") ON DELETE No Action ON UPDATE Cascade,
78 CONSTRAINT "Isik_FK_isikukoodi_riik" FOREIGN KEY ("riik_kood") REFERENCES "Riik" ("riik_kood") ON DELETE No Action ON UPDATE Cascade
79)
80;
81
82CREATE TABLE "Isiku_seisundi_liik"
83(
84 "seisundi_liik_kood" smallint NOT NULL,
85 "nimetus" varchar(50) NOT NULL,
86 "kirjeldus" Text,
87 CONSTRAINT "Isiku_seisundi_liik_PK_seisundi_liik_kood" PRIMARY KEY ("seisundi_liik_kood"),
88 CONSTRAINT "Isiku_seisundi_liik_UQ_nimetus" UNIQUE ("nimetus"),
89 CONSTRAINT "Isiku_seisundi_liik_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
90 CONSTRAINT "Isiku_seisundi_liik_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
91)
92;
93
94CREATE TABLE "Kliendi_seisundi_liik"
95(
96 "seisundi_liik_kood" smallint NOT NULL,
97 "nimetus" varchar(50) NOT NULL,
98 "kirjeldus" Text,
99 CONSTRAINT "Kliendi_seisundi_PK_seisundi_liik_kood" PRIMARY KEY ("seisundi_liik_kood"),
100 CONSTRAINT "Kliendi_seisundi_UQ_nimetus" UNIQUE ("nimetus"),
101 CONSTRAINT "Kliendi_seisundi_liik_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
102 CONSTRAINT "Kliendi_seisundi_liik_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
103)
104;
105
106CREATE TABLE "Klient"
107(
108 "isik_id" integer NOT NULL,
109 "seisundi_liik_kood" smallint NOT NULL DEFAULT 1,
110 "on_nous_otseturundusega" boolean NOT NULL DEFAULT false,
111 CONSTRAINT "Klient_PK_klient_kood" PRIMARY KEY ("isik_id"),
112 CREATE INDEX "Klient_IDX_Kliendi_seisundi_liik" ("seisundi_liik_kood" ASC),
113 CONSTRAINT "Klient_FK_kliendi_seisundi_liik" FOREIGN KEY ("seisundi_liik_kood") REFERENCES "Kliendi_seisundi_liik" ("seisundi_liik_kood") ON DELETE No Action ON UPDATE Cascade,
114 CONSTRAINT "Klient_FK_Isiku_kliendi_roll" FOREIGN KEY ("isik_id") REFERENCES "Isik" ("isik_id") ON DELETE Cascade ON UPDATE No Action
115)
116;
117
118CREATE TABLE "Riik"
119(
120 "riik_kood" char(3) NOT NULL,
121 "nimetus" varchar(50) NOT NULL,
122 "kirjeldus" Text,
123 CONSTRAINT "Riik_PK_riik_kood" PRIMARY KEY ("riik_kood"),
124 CONSTRAINT "Riik_UQ_nimetus" UNIQUE ("nimetus"),
125 CONSTRAINT "Riik_CHK_riik_kood" CHECK (riik_kood~'^[[A-Z]{3}]*$'),
126 CONSTRAINT "Riik_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$'),
127 CONSTRAINT "Riik_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$')
128)
129;
130
131CREATE TABLE "Toode"
132(
133 "toode_kood" varchar(100) NOT NULL,
134 "nimetus" varchar(400) NOT NULL,
135 "tootaja_id" integer NOT NULL,
136 "seisundi_liik_kood" smallint NOT NULL DEFAULT 1,
137 "riik_kood" char(3) NOT NULL,
138 "kirjeldus" text NOT NULL,
139 "kaal" decimal(7,3) NOT NULL DEFAULT 0,
140 "korgus" decimal(7,3) NOT NULL DEFAULT 0,
141 "pikkus" decimal(7,3) NOT NULL DEFAULT 0,
142 "laius" decimal(7,3) NOT NULL DEFAULT 0,
143 "reg_aeg" timestamp NOT NULL DEFAULT date_trunc('minute',LOCALTIMESTAMP) ,
144 "hind" decimal(19,4) NOT NULL DEFAULT 0,
145 "min_soovitatav_vanus" smallint NOT NULL DEFAULT 0,
146 "max_soovitatav_vanus" smallint,
147 "pildi_url" Text,
148 CONSTRAINT "Toode_PK_toode_kood" PRIMARY KEY ("toode_kood"),
149 CONSTRAINT "Toode_UQ_nimetus" UNIQUE ("nimetus"),
150 CREATE INDEX "Toode_IDX_riik" ("riik_kood" ASC),
151 CREATE INDEX "Toode_IDX_seisundi_liik" ("seisundi_liik_kood" ASC),
152 CREATE INDEX "Toode_IDX_registreerija" ("tootaja_id" ASC),
153 CONSTRAINT "Toode_CHK_pildi_url" CHECK (pildi_url~'^https?://(?:[a-z0-9\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:jpg|gif|png)$'),
154 CONSTRAINT "Toode_CHK_nimetus_ei_koosne_tyhikutest_pole_tyhi" CHECK (nimetus!~'^[[:space:]]*$'),
155 CONSTRAINT "Toode_CHK_kirjeldus_ei_koosne_tyhikutest_pole_tyhi" CHECK (kirjeldus!~'^[[:space:]]*$'),
156 CONSTRAINT "Toode_CHK_korgus_nullist_kuni_sada_meetrit" CHECK (korgus >= 0 AND korgus <= 100),
157 CONSTRAINT "Toode_CHK_pikkus_nullist_kuni_sada_meetrit" CHECK (pikkus >= 0 AND pikkus <= 100),
158 CONSTRAINT "Toode_CHK_laius_nullist_kuni_sada_meetrit" CHECK (laius >= 0 AND laius <= 100),
159 CONSTRAINT "Toode_CHK_Toode_hind_null_voi_suurem" CHECK (hind >= 0),
160 CONSTRAINT "Toode_CHK_kaal_nullist_kuni_tuhat_kilo" CHECK (kaal >= 0 AND kaal <= 1000),
161 CONSTRAINT "Toode_CHK_min_soovitatav_vanus_nullist_sajani" CHECK (min_soovitatav_vanus >= 0 AND min_soovitatav_vanus <= 100),
162 CONSTRAINT "Toode_CHK_max_soovitatav_vanus_nullist_suurem_sajani" CHECK (max_soovitatav_vanus > 0 AND max_soovitatav_vanus <= 100),
163 CONSTRAINT "Toode_CHK_min_soovitatav_vaiksem_vordne_max_soovitatavast" CHECK (min_soovitatav_vanus <= max_soovitatav_vanus),
164 CONSTRAINT "Toode_CHK_reg_aeg" CHECK (reg_aeg > '01-01-2010 00:00:00' AND reg_aeg < '31-12-2100 23:59:00'),
165 CONSTRAINT "Toode_FK_riik_kood" FOREIGN KEY ("riik_kood") REFERENCES "Riik" ("riik_kood") ON DELETE No Action ON UPDATE Cascade,
166 CONSTRAINT "Toode_FK_toote_seisundi_liik" FOREIGN KEY ("seisundi_liik_kood") REFERENCES "Toote_seisundi_liik" ("seisundi_liik_kood") ON DELETE No Action ON UPDATE Cascade,
167 CONSTRAINT "Toode_FK_tootaja_id" FOREIGN KEY ("tootaja_id") REFERENCES "Tootaja" ("isik_id") ON DELETE No Action ON UPDATE Cascade
168)
169;
170
171CREATE TABLE "Tootaja"
172(
173 "isik_id" integer NOT NULL,
174 "amet_kood" smallint NOT NULL DEFAULT 10,
175 "seisundi_liik_kood" smallint NOT NULL DEFAULT 1,
176 CONSTRAINT "Tootaja_PK_isik_id" PRIMARY KEY ("isik_id"),
177 CREATE INDEX "Tootaja_IDX_amet_kood" ("amet_kood" ASC),
178 CREATE INDEX "Tootaja_IDX_seisundi_liik_kood" ("seisundi_liik_kood" ASC),
179 CONSTRAINT "Tootaja_FK_amet_kood" FOREIGN KEY ("amet_kood") REFERENCES "Amet" ("amet_kood") ON DELETE No Action ON UPDATE Cascade,
180 CONSTRAINT "Tootaja_FK_seisundi_liik_kood" FOREIGN KEY ("seisundi_liik_kood") REFERENCES "Tootaja_seisundi_liik" ("seisundi_liik_kood") ON DELETE No Action ON UPDATE Cascade,
181 CONSTRAINT "Tootaja_FK_isik_id" FOREIGN KEY ("isik_id") REFERENCES "Isik" ("isik_id") ON DELETE Cascade ON UPDATE No Action
182)
183;
184
185CREATE TABLE "Tootaja_seisundi_liik"
186(
187 "seisundi_liik_kood" smallint NOT NULL,
188 "nimetus" varchar(100) NOT NULL,
189 "kirjeldus" Text,
190 CONSTRAINT "Tootaja_seisundi_liik_PK_Tootaja_seisundi_liik" PRIMARY KEY ("seisundi_liik_kood"),
191 CONSTRAINT "Tootaja_seisundi_liik_UQ_Tootaja_seisundi_liik_nimetus" UNIQUE ("nimetus"),
192 CONSTRAINT "Tootaja_seisundi_liik_CHK_Nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
193 CONSTRAINT "Tootaja_seisundi_liik_CHK_Kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
194)
195;
196
197CREATE TABLE "Toote_kategooria"
198(
199 "kategooria_kood" smallint NOT NULL,
200 "nimetus" varchar(100) NOT NULL,
201 "kirjeldus" Text,
202 CONSTRAINT "Toote_kategooria_PK_kategooria_kood" PRIMARY KEY ("kategooria_kood"),
203 CONSTRAINT "Toote_kategooria_UQ_nimetus" UNIQUE ("nimetus"),
204 CONSTRAINT "Toote_kategooria_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
205 CONSTRAINT "Toote_kategooria_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
206)
207;
208
209CREATE TABLE "Toote_kategooria_omamine"
210(
211 "toode_kood" varchar(100) NOT NULL,
212 "kategooria_kood" smallint NOT NULL,
213 CONSTRAINT "Toote_kategooria_omamine_PK_toode_kood_toote_kategooria" PRIMARY KEY ("toode_kood","kategooria_kood"),
214 CREATE INDEX "Toote_kategooria_omamine_IDX_kategooria_kood" ("kategooria_kood" ASC),
215 CONSTRAINT "Toote_kategooria_omamine_FK_toode_kood" FOREIGN KEY ("toode_kood") REFERENCES "Toode" ("toode_kood") ON DELETE Cascade ON UPDATE Cascade,
216 CONSTRAINT "Toote_kategooria_omamine_FK_kategooria_kood" FOREIGN KEY ("kategooria_kood") REFERENCES "Toote_kategooria" ("kategooria_kood") ON DELETE Cascade ON UPDATE Cascade
217)
218;
219
220CREATE TABLE "Toote_seisundi_liik"
221(
222 "seisundi_liik_kood" smallint NOT NULL,
223 "nimetus" varchar(100) NOT NULL,
224 "kirjeldus" varchar(300) ,
225 CONSTRAINT "Toote_seisundi_liik_PK_seisundi_liik_kood" PRIMARY KEY ("seisundi_liik_kood"),
226 CONSTRAINT "Toote_seisundi_liik_UQ_nimetus" UNIQUE ("nimetus"),
227 CONSTRAINT "Toote_seisundi_liik_CHK_nimetus" CHECK (nimetus!~'^[[:space:]]*$'),
228 CONSTRAINT "Toote_seisundi_liik_CHK_kirjeldus" CHECK (kirjeldus!~'^[[:space:]]*$')
229)
230;
231
232CREATE SEQUENCE "isik_isik_id_seq" INCREMENT 1 START 1
233;