· 4 years ago · Jul 21, 2021, 04:38 PM
1drop table if exists Utente cascade;
2drop table if exists Amministratore cascade;
3drop table if exists Corso cascade;
4drop table if exists Categoria cascade;
5drop table if exists MaterialeDidattico cascade;
6drop table if exists Test cascade;
7drop table if exists Svolgimento cascade;
8drop table if exists Certificazione cascade;
9drop table if exists Domanda cascade;
10drop table if exists Risposta cascade;
11drop table if exists CU cascade;
12drop table if exists Iscrizione cascade;
13
14
15CREATE TABLE Utente
16(
17 Codice character(5) NOT NULL,
18 Nome character varying(50) NOT NULL,
19 Cognome character varying(50) NOT NULL,
20 Email character varying(50) NOT NULL UNIQUE,
21 DataDiNascita date NOT NULL,
22 Sesso character(1) NOT NULL,
23 Password character varying(255) NOT NULL,
24 PRIMARY KEY (Codice),
25 constraint checkSesso check( Sesso='M' or Sesso='F')
26);
27
28CREATE TABLE Amministratore
29(
30 Codice character(5) NOT NULL UNIQUE,
31 Utente character(5) NOT NULL,
32 constraint UtKey foreign key (Utente)references Utente(Codice)
33 on delete restrict on update cascade,
34 PRIMARY KEY (Codice)
35);
36
37CREATE TABLE Corso
38(
39 Codice character(5) NOT NULL,
40 Nome character varying(50) NOT NULL,
41 Descrizione text NOT NULL,
42 Amministratore character(5) NOT NULL,
43 DataCreazione date NOT NULL,
44
45 constraint AmKey foreign key (Amministratore) references Amministratore(Codice)
46 on delete restrict on update cascade,
47 PRIMARY KEY(Codice)
48
49);
50
51CREATE TABLE Test
52(
53 Codice character(5) NOT NULL,
54 Descrizione text NOT NULL,
55 Corso character(5) NOT NULL UNIQUE,
56
57 constraint CorKey foreign key (Corso) references Corso(Codice)
58 on delete restrict on update cascade,
59 PRIMARY KEY (Codice)
60);
61
62
63
64CREATE TABLE Categoria
65(
66 Codice character(5) NOT NULL,
67 Corso character(5) NOT NULL,
68 Nome character varying(50) NOT NULL,
69
70 constraint CorKey foreign key (Corso) references Corso(Codice)
71 on delete restrict on update cascade,
72 PRIMARY KEY(Codice, Corso)
73
74);
75
76CREATE TABLE MaterialeDidattico
77(
78 Codice character(5) NOT NULL,
79 Categoria character(5) NOT NULL,
80 Corso character(5) NOT NULL,
81 Descrizione text NOT NULL,
82 URL text NOT NULL UNIQUE,
83
84
85 constraint CatKey foreign key (Categoria,Corso) references Categoria(Codice,Corso)
86 on delete restrict on update cascade,
87 PRIMARY KEY(Codice, Categoria, Corso)
88
89);
90
91 CREATE TABLE Svolgimento
92(
93 Codice character(5) NOT NULL,
94 Test character(5) NOT NULL,
95 Utente character(5) NOT NULL,
96 Esito character varying(50) NOT NULL,
97 Punteggio numeric(5,2) NOT NULL,
98
99 constraint UtKey foreign key (Utente) references Utente(Codice)
100 on delete restrict on update cascade,
101 constraint TestKey foreign key (Test) references Test(Codice)
102 on delete restrict on update cascade,
103 PRIMARY KEY(Codice, Test, Utente)
104);
105
106CREATE TABLE Certificazione
107(
108 Test character(5) NOT NULL,
109 Descrizione text NOT NULL,
110 URL text NOT NULL UNIQUE,
111
112 constraint TestKey foreign key (Test) references Test(Codice)
113 on delete restrict on update cascade,
114 PRIMARY KEY(Test)
115);
116
117CREATE TABLE Domanda
118(
119 Codice character(5) NOT NULL,
120 Test character(5) NOT NULL,
121 Descrizione text NOT NULL,
122
123 constraint TestKey foreign key (Test) references Test(Codice)
124 on delete restrict on update cascade,
125 PRIMARY KEY(Codice, Test)
126
127);
128
129CREATE TABLE Risposta
130(
131 Codice character(5) NOT NULL,
132 Domanda character(5) NOT NULL,
133 Test character(5) NOT NULL,
134 Descrizione text NOT NULL,
135 Corretta boolean NOT NULL,
136
137 constraint DomKey foreign key (Domanda, Test) references Domanda(Codice, Test)
138 on delete restrict on update cascade,
139 PRIMARY KEY(Codice, Domanda, Test)
140
141);
142
143CREATE TABLE CU
144(
145 Utente character(5) NOT NULL,
146 Certificazione character(5) NOT NULL,
147 Data date NOT NULL,
148
149 constraint UtKey foreign key (Utente) references Utente(Codice)
150 on delete restrict on update cascade,
151 constraint CertKey foreign key (Certificazione) references Certificazione(Test)
152 on delete restrict on update cascade,
153 PRIMARY KEY(Utente, Certificazione)
154
155);
156
157
158CREATE TABLE Iscrizione
159(
160 Utente character(5) NOT NULL,
161 Corso character varying(50) NOT NULL,
162 DataIscrizione date NOT NULL,
163
164 constraint UtKey foreign key (Utente) references Utente(Codice)
165 on delete restrict on update cascade,
166 constraint CorKey foreign key (Corso) references Corso(Codice)
167 on delete restrict on update cascade,
168
169 PRIMARY KEY (Utente, Corso)
170);
171
172