Нормализација и подобрувања на дизајнот: normlizacija_ddl_schema.2.sql

File normlizacija_ddl_schema.2.sql, 2.1 KB (added by 183284, 2 days ago)
Line 
1-- Brisenje na postoecki tabeli vo правилен редослед
2DROP TABLE IF EXISTS trenira CASCADE;
3DROP TABLE IF EXISTS raboti CASCADE;
4DROP TABLE IF EXISTS poseti CASCADE;
5DROP TABLE IF EXISTS clenstvo CASCADE;
6DROP TABLE IF EXISTS clenovi CASCADE;
7DROP TABLE IF EXISTS paketi CASCADE;
8DROP TABLE IF EXISTS tip_vremetranje CASCADE;
9DROP TABLE IF EXISTS lokacii CASCADE;
10DROP TABLE IF EXISTS vraboteni CASCADE;
11
12-- Kreiranje na tabeli
13
14CREATE TABLE clenovi (
15 clenid SERIAL PRIMARY KEY,
16 ime VARCHAR(50) NOT NULL,
17 prezime VARCHAR(50) NOT NULL,
18 email VARCHAR(100) UNIQUE,
19 broj_poseti INT DEFAULT 0
20);
21
22CREATE TABLE paketi (
23 paketid SERIAL PRIMARY KEY,
24 ime VARCHAR(50) NOT NULL,
25 cena NUMERIC(10,2) NOT NULL
26);
27
28CREATE TABLE tip_vremetranje (
29 vremetraenjeid SERIAL PRIMARY KEY,
30 vremetraenjedenovi INT NOT NULL,
31 ime VARCHAR(50) NOT NULL
32);
33
34CREATE TABLE clenstvo (
35 clenstvoid SERIAL PRIMARY KEY,
36 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
37 paketid INT REFERENCES paketi(paketid) ON DELETE CASCADE,
38 vremetraenjeid INT REFERENCES tip_vremetranje(vremetraenjeid) ON DELETE CASCADE,
39 start_datum DATE NOT NULL
40);
41
42CREATE TABLE lokacii (
43 lokacijaid SERIAL PRIMARY KEY,
44 adresa VARCHAR(255) NOT NULL,
45 telefon VARCHAR(15) NOT NULL
46);
47
48CREATE TABLE poseti (
49 posetaid SERIAL PRIMARY KEY,
50 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
51 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
52 datum DATE NOT NULL
53);
54
55CREATE TABLE vraboteni (
56 vrabotenid SERIAL PRIMARY KEY,
57 ime VARCHAR(50) NOT NULL,
58 pozicija VARCHAR(50) NOT NULL
59);
60
61CREATE TABLE trenira (
62 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
63 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
64 PRIMARY KEY(clenid, vrabotenid)
65);
66
67CREATE TABLE raboti (
68 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
69 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
70 PRIMARY KEY(vrabotenid, lokacijaid)
71);