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

File normlizacija_ddl_schema.sql, 2.0 KB (added by 183284, 2 days ago)
Line 
1-- Brisenje na postoecki tabeli vo pravilen redosled (poradi zavisnosti)
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 ime VARCHAR(50) NOT NULL
45);
46
47CREATE TABLE poseti (
48 posetaid SERIAL PRIMARY KEY,
49 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
50 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
51 datum DATE NOT NULL
52);
53
54CREATE TABLE vraboteni (
55 vrabotenid SERIAL PRIMARY KEY,
56 ime VARCHAR(50) NOT NULL,
57 pozicija VARCHAR(50) NOT NULL
58);
59
60CREATE TABLE trenira (
61 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
62 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
63 PRIMARY KEY(clenid, vrabotenid)
64);
65
66CREATE TABLE raboti (
67 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
68 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
69 PRIMARY KEY(vrabotenid, lokacijaid)
70);