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

File normlizacija_ddl_schema.3.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 ime VARCHAR(50) NOT NULL,
45 adresa VARCHAR(255) NOT NULL,
46 telefon VARCHAR(15) NOT NULL
47);
48
49CREATE TABLE poseti (
50 posetaid SERIAL PRIMARY KEY,
51 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
52 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
53 datum DATE NOT NULL
54);
55
56CREATE TABLE vraboteni (
57 vrabotenid SERIAL PRIMARY KEY,
58 ime VARCHAR(50) NOT NULL,
59 pozicija VARCHAR(50) NOT NULL
60);
61
62CREATE TABLE trenira (
63 clenid INT REFERENCES clenovi(clenid) ON DELETE CASCADE,
64 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
65 PRIMARY KEY(clenid, vrabotenid)
66);
67
68CREATE TABLE raboti (
69 vrabotenid INT REFERENCES vraboteni(vrabotenid) ON DELETE CASCADE,
70 lokacijaid INT REFERENCES lokacii(lokacijaid) ON DELETE CASCADE,
71 PRIMARY KEY(vrabotenid, lokacijaid)
72);