-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdatabase.sql
More file actions
324 lines (261 loc) · 11.2 KB
/
database.sql
File metadata and controls
324 lines (261 loc) · 11.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
DROP DATABASE IF EXISTS BirdComics;
CREATE DATABASE BirdComics;
USE BirdComics;
CREATE TABLE Indirizzo (
nomeCitta varchar(45) NOT NULL,
via varchar(45) NOT NULL,
numeroCivico varchar(10) NOT NULL,
cap varchar(45) NOT NULL,
PRIMARY KEY (nomeCitta, via, numeroCivico, cap)
);
CREATE TABLE Autore(
nome varchar(45) NOT NULL,
cognome varchar(45) NOT NULL,
PRIMARY KEY(nome, cognome)
);
CREATE TABLE Genere(
genere varchar(45) NOT NULL,
PRIMARY KEY (genere)
);
CREATE TABLE Fumetto(
id INT NOT NULL AUTO_INCREMENT,
nome varchar(45) NOT NULL,
descrizione varchar(100) NOT NULL,
prezzo float NOT NULL,
immagine varchar (255),
PRIMARY KEY (id)
);
CREATE TABLE Autore_Fumetto(
nomeAutore varchar(45) NOT NULL,
cognomeAutore varchar(45) NOT NULL,
idFumetto INT NOT NULL,
PRIMARY KEY(nomeAutore, cognomeAutore, idFumetto),
FOREIGN KEY (nomeAutore, cognomeAutore) REFERENCES Autore (nome, cognome) ON DELETE CASCADE,
FOREIGN KEY (idFumetto) REFERENCES Fumetto (id) ON DELETE CASCADE
);
CREATE TABLE Genere_Fumetto(
genere varchar(45) NOT NULL,
idFumetto INT NOT NULL,
PRIMARY KEY(genere, idFumetto),
FOREIGN KEY (Genere) REFERENCES Genere (genere) ON DELETE CASCADE,
FOREIGN KEY (idFumetto) REFERENCES Fumetto (id) ON DELETE CASCADE
);
CREATE TABLE Scaffali(
id INT NOT NULL AUTO_INCREMENT,
quantita INT NOT NULL,
quantitaMassima INT NOT NULL,
idFumetto INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (idFumetto) REFERENCES Fumetto (id) ON DELETE CASCADE
);
CREATE TABLE Magazzino(
nome varchar(45) NOT NULL,
nomeCitta varchar(45) NOT NULL,
via varchar(45) NOT NULL,
numeroCivico varchar(10) not NULL,
cap varchar(45) not NULL,
PRIMARY KEY (nome),
FOREIGN KEY (nomeCitta, via, numeroCivico, cap) REFERENCES Indirizzo (nomeCitta, via, numeroCivico, cap) ON DELETE CASCADE
);
CREATE TABLE MagazzinoScaffali(
idMagazzino VARCHAR(45) NOT NULL,
idScaffale INT NOT NULL,
PRIMARY KEY (idMagazzino, idScaffale),
FOREIGN KEY (idMagazzino) REFERENCES Magazzino (nome) ON DELETE CASCADE,
FOREIGN KEY (idScaffale) REFERENCES Scaffali (id) ON DELETE CASCADE
);
CREATE TABLE Fattura(
id INT NOT NULL AUTO_INCREMENT,
iva INT NOT NULL,
nome varchar(45) NOT NULL,
cognome varchar(45) NOT NULL,
telefono varchar(11) NOT NULL,
nomeCittaCliente varchar(45) NOT NULL,
viaCliente varchar(45) NOT NULL,
numeroCivicoCliente varchar(10) not NULL,
capCliente varchar(45) not NULL,
PRIMARY KEY (id)
);
CREATE TABLE Utente(
email varchar(45) NOT NULL,
pass varchar(45) NOT NULL,
nome varchar(45) NOT NULL,
cognome varchar(45) NOT NULL,
telefono varchar(11) NOT NULL,
nomeCitta varchar(45) NOT NULL,
via varchar(45) NOT NULL,
numeroCivico varchar(10) not NULL,
cap varchar(45) not NULL,
dataNascita date,
PRIMARY KEY (email),
FOREIGN KEY (nomeCitta, via, numeroCivico, cap) REFERENCES Indirizzo (nomeCitta, via, numeroCivico, cap) ON DELETE CASCADE
);
CREATE TABLE Ordine(
emailUtente VARCHAR(45) NOT NULL,
id INT NOT NULL AUTO_INCREMENT,
idpaypal varchar(45) NOT NULL,
shipped varchar(45) NOT NULL,
dataEffettuato date NOT NULL,
idFattura INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (idFattura) REFERENCES Fattura (id) ON DELETE CASCADE,
FOREIGN KEY (emailUtente) REFERENCES Utente (email) ON DELETE CASCADE
);
CREATE TABLE Ordine_Magazzino(
idOrdine INT NOT NULL,
nomeMagazzino varchar(45) NOT NULL,
idFumetto INT NOT NULL,
idScaffale INT NOT NULL,
nome varchar(45) NOT NULL,
descrizione varchar(100) NOT NULL,
prezzo float NOT NULL,
quantita int not null,
PRIMARY KEY (idOrdine, nomeMagazzino, idFumetto, idScaffale),
FOREIGN KEY (idOrdine) REFERENCES Ordine (id) ON DELETE CASCADE,
FOREIGN KEY (nomeMagazzino) REFERENCES Magazzino (nome) ON DELETE CASCADE,
FOREIGN KEY (idScaffale) REFERENCES Scaffali (id) ON DELETE CASCADE
);
CREATE TABLE CarrelloCliente(
id VARCHAR(45) NOT NULL,
idFumetto INT NOT NULL,
quantita INT NOT NULL,
PRIMARY KEY (id, idFumetto),
FOREIGN KEY (idFumetto) REFERENCES Fumetto (id) ON DELETE CASCADE,
FOREIGN KEY (id) REFERENCES Utente (email) ON DELETE CASCADE
);
CREATE TABLE Utente_Ruolo (
idRuolo ENUM('GestoreGenerale', 'GestoreMagazzino', 'RisorseUmane', 'GestoreCatalogo', 'Magazziniere', 'Spedizioniere', 'Assistenza', 'Finanza', 'Cliente') NOT NULL default 'Cliente',
emailUtente VARCHAR(45) NOT NULL,
nomeMagazzino varchar(45) default null,
PRIMARY KEY (idRuolo, emailUtente),
FOREIGN KEY (emailUtente) REFERENCES Utente (email) ON DELETE CASCADE,
FOREIGN KEY (nomeMagazzino) REFERENCES Magazzino (nome) ON DELETE CASCADE
);
-- Inserimento nella tabella Indirizzo
INSERT INTO Indirizzo (nomeCitta, via, numeroCivico, cap) VALUES
('Napoli', 'Via Toledo', '22', '4321'),
('Torino', 'Via Po', '30', '8765'),
('Bologna', 'Via Indipendenza', '15', '1357'),
('Firenze', 'Piazza del Duomo', '5', '2468'),
('Roma', 'Via della Conciliazione', '10', '1234'),
('Milano', 'Corso Buenos Aires', '15', '5678');
-- Inserimento nella tabella Autore
INSERT INTO Autore (nome, cognome) VALUES
('Geoff', 'Johns'),
('Mark', 'Millar'),
('Grant', 'Morrison'),
('Brian', 'Bendis'),
('Ed', 'Brubaker'),
('Alan', 'Moore'),
('Frank', 'Miller');
-- Inserimento nella tabella Genere
INSERT INTO Genere (genere) VALUES
('Fantasy'),
('Avventura'),
('Guerra'),
('Commedia'),
('Drammatico'),
('Storico'),
('Supereroi'),
('Fantascienza'),
('Horror');
-- Inserimento nella tabella Fumetto
INSERT INTO Fumetto (nome, descrizione, prezzo) VALUES
('Green Lantern', 'Il supereroe con un anello che dà poteri illimitati', 12.99),
('Kick-Ass', 'Un ragazzo normale che decide di diventare un supereroe', 14.99),
('Batman: Arkham Asylum', 'Le avventure di Batman contro i suoi nemici più pericolosi', 17.99),
('Daredevil', 'Un avvocato cieco che combatte il crimine', 18.99),
('Captain America', 'Un soldato super-soldato durante la Seconda Guerra Mondiale', 16.99),
('X-Men', 'Un gruppo di supereroi mutanti che combattono per l uguaglianza', 13.99),
('Watchmen', 'Fumetto di supereroi con tematiche adulte', 19.99),
('The Dark Knight Returns', 'Racconto epico di Batman', 15.99);
-- Inserimento nella tabella Autore_Fumetto
INSERT INTO Autore_Fumetto (nomeAutore, cognomeAutore, idFumetto) VALUES
('Geoff', 'Johns', 1),
('Mark', 'Millar', 2),
('Grant', 'Morrison', 3),
('Brian', 'Bendis', 4),
('Ed', 'Brubaker', 5),
('Geoff', 'Johns', 6),
('Alan', 'Moore', 1),
('Frank', 'Miller', 2);
-- Inserimento nella tabella Genere_Fumetto
INSERT INTO Genere_Fumetto (genere, idFumetto) VALUES
('Fantasy', 1),
('Avventura', 2),
('Guerra', 3),
('Commedia', 4),
('Drammatico', 5),
('Supereroi', 6),
('Supereroi', 1),
('Supereroi', 2),
('Fantascienza', 1);
-- Inserimento nella tabella Scaffali
INSERT INTO Scaffali (quantita, quantitaMassima, idFumetto) VALUES
(10, 30, 1),
(15, 50, 2),
(20, 60, 3),
(25, 80, 4),
(30, 100, 5),
(35, 120, 6),
(5, 20, 1),
(10, 50, 2);
-- Inserimento nella tabella Magazzino
INSERT INTO Magazzino (nome, nomeCitta, via, numeroCivico, cap) VALUES
('Magazzino Napoli', 'Napoli', 'Via Toledo', '22', '4321'),
('Magazzino Bologna', 'Bologna', 'Via Indipendenza', '15', '1357');
INSERT INTO MagazzinoScaffali(idMagazzino, idScaffale) VALUES
('Magazzino Napoli', 1),
('Magazzino Napoli', 2),
('Magazzino Napoli', 3),
('Magazzino Napoli', 4),
('Magazzino Napoli', 5),
('Magazzino Bologna', 6),
('Magazzino Bologna', 7),
('Magazzino Bologna', 8);
INSERT INTO Utente (email, pass, nome, cognome, telefono, nomeCitta, via, numeroCivico, cap) VALUES
('cliente@example.com', 'password', 'Silvia', 'Rossi', '6789012345', 'Torino', 'Via Po', '30', '8765');
INSERT INTO Utente (email, pass, nome, cognome, telefono, nomeCitta, via, numeroCivico, cap) VALUES
('generale@BirdComics.com', 'paolopass789', 'Paolo', 'Ferrari', '7890123456', 'Torino', 'Via Po', '30', '8765'),
('magazzino@BirdComics.com', 'martapass012', 'Marta', 'Bianchi', '8901234567', 'Torino', 'Via Po', '30', '8765'),
('hr@BirdComics.com', 'luigipass345', 'Luigi', 'Verdi', '9012345678', 'Torino', 'Via Po', '30', '8765'),
('catalogo@BirdComics.com', 'francescapass678', 'Francesca', 'Galli', '1234098765', 'Torino', 'Via Po', '30', '8765'),
('magazziniere@BirdComics.com', 'giorgiopass234', 'Giorgio', 'Moretti', '2345109876', 'Torino', 'Via Po', '30', '8765'),
('spedizioniere@BirdComics.com', 'elisapass567', 'Elisa', 'Conti', '3456210987', 'Torino', 'Via Po', '30', '8765'),
('assistenza@BirdComics.com', 'claudiopass890', 'Claudio', 'Ricci', '4567321098', 'Torino', 'Via Po', '30', '8765'),
('finanza@BirdComics.com', 'serenapass345', 'Serena', 'Marini', '5678432109', 'Torino', 'Via Po', '30', '8765');
-- Inserimento nella tabella Fattura
INSERT INTO Fattura (iva, nome, cognome, telefono, nomeCittaCliente, viaCliente, numeroCivicoCliente, capCliente) VALUES
(22, 'silvana','sana', '2325','Roma', 'Via della Conciliazione', '10', '1234'),
(22, 'silvana','sana', '2325','Milano', 'Via Po', '12', '8765');
-- Inserimento nella tabella Ordine
INSERT INTO Ordine (emailUtente, idpaypal, shipped, dataEffettuato, idFattura) VALUES
('cliente@example.com', 'PAYPAL112233', "Non Spedito", '2025-02-20', 1),
('cliente@example.com', 'PAYPAL445566', "Non Spedito", '2025-02-22', 2),
('cliente@example.com', 'PAYPAL778899', "Non Spedito", '2025-02-23', 1),
('cliente@example.com', 'PAYPAL998877', "Non Spedito", '2025-02-24', 1);
-- Inserimento nella tabella Ordine_Magazzino
INSERT INTO Ordine_Magazzino (idOrdine, nomeMagazzino, idFumetto, idScaffale, nome, descrizione, prezzo, quantita) VALUES
(1, 'Magazzino Napoli', 1,1, 'ciao', 'ciao', 23.2, 2),
(2, 'Magazzino Napoli', 1,1, 'ciao', 'ciao', 23.2, 2),
(3, 'Magazzino Napoli', 1,1, 'ciao', 'ciao', 23.2, 2),
(4, 'Magazzino Napoli', 1,1, 'ciao', 'ciao', 23.2, 2),
(1, 'Magazzino Bologna', 1,1, 'ciao', 'ciao', 23.2, 2),
(2, 'Magazzino Bologna', 1,1, 'ciao', 'ciao', 23.2, 2);
-- Inserimento nella tabella CarrelloCliente
INSERT INTO CarrelloCliente (id, idFumetto, quantita) VALUES
("cliente@example.com", 1, 5),
("cliente@example.com", 2, 3),
("cliente@example.com", 3, 3);
-- Inserimento nella tabella Utente
-- Inserimento nella tabella Utente_Ruolo
INSERT INTO Utente_Ruolo (idRuolo, emailUtente, nomeMagazzino) VALUES
('Cliente', 'cliente@example.com', 'Magazzino Napoli'),
('GestoreGenerale', 'generale@BirdComics.com', 'Magazzino Napoli'),
('GestoreMagazzino', 'magazzino@BirdComics.com', 'Magazzino Napoli'),
('RisorseUmane', 'hr@BirdComics.com', 'Magazzino Bologna'),
('GestoreCatalogo', 'catalogo@BirdComics.com', 'Magazzino Napoli'),
('Magazziniere', 'magazziniere@BirdComics.com', 'Magazzino Napoli'),
('Spedizioniere', 'spedizioniere@BirdComics.com','Magazzino Napoli' ),
('Assistenza', 'assistenza@BirdComics.com','Magazzino Napoli'),
('Finanza', 'finanza@BirdComics.com','Magazzino Napoli');