· 5 years ago · Sep 08, 2020, 03:46 PM
1/* Creazione database Azienda */
2DROP DATABASE IF EXISTS Azienda;
3CREATE DATABASE Azienda;
4
5USE Azienda;
6
7/* Creazione tabella Reso */
8DROP TABLE IF EXISTS Reso;
9CREATE TABLE Reso (
10 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
11 Stato CHAR(100) NOT NULL DEFAULT 'in processazione',
12 Ordine INT UNSIGNED NOT NULL
13 REFERENCES Ordine(CodiceOrdine),
14 MotivazioneReso INT UNSIGNED NOT NULL
15 REFERENCES MotivazioneReso(Codice),
16 ProdottoElettronico INT UNSIGNED NOT NULL
17 REFERENCES ProdottoElettronico(CodSeriale)
18)ENGINE=InnoDB DEFAULT CHARSET=latin1;
19
20/* Creazione tabella MotivazioneReso */
21DROP TABLE IF EXISTS MotivazioneReso;
22CREATE TABLE MotivazioneReso (
23 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
24 Nome CHAR(100),
25 Descrizione TEXT NOT NULL
26)ENGINE=InnoDB DEFAULT CHARSET=latin1;
27
28/* Creazione tabella Ristoccaggio */
29DROP TABLE IF EXISTS Ristoccaggio;
30CREATE TABLE Ristoccaggio (
31 Reso INT UNSIGNED PRIMARY KEY
32 REFERENCES Reso(Codice),
33 Magazzino INT UNSIGNED NOT NULL
34 REFERENCES Magazzino(Codice),
35 Dimensione INT UNSIGNED NOT NULL, -- m^2
36 DataInserimento DATE NOT NULL,
37 DataEstrazione DATE DEFAULT NULL,
38 Posizione CHAR(100) NOT NULL -- area del magazzino
39)ENGINE=InnoDB DEFAULT CHARSET=latin1;
40
41/* Creazione tabella Interessa */
42DROP TABLE IF EXISTS Interessa;
43CREATE TABLE Interessa (
44 Ordine INT UNSIGNED
45 REFERENCES Ordine(CodiceOrdine),
46 Garanzia INT UNSIGNED
47 REFERENCES Garanzia(Codice),
48 PRIMARY KEY (Ordine,Garanzia)
49)ENGINE=InnoDB DEFAULT CHARSET=latin1;
50
51/* Creazione tabella Garanzia */
52DROP TABLE IF EXISTS Garanzia;
53CREATE TABLE Garanzia (
54 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
55 Descrizione TEXT NOT NULL,
56 Costo DOUBLE NOT NULL,
57 Durata INT UNSIGNED -- mesi
58)ENGINE=InnoDB DEFAULT CHARSET=latin1;
59
60/* Creazione tabella Riferimento */
61DROP TABLE IF EXISTS Riferimento;
62CREATE TABLE Riferimento (
63 Garanzia INT UNSIGNED
64 REFERENCES Garanzia(Codice),
65 ProdottoElettronico INT UNSIGNED
66 REFERENCES ProdottoElettronico(CodSeriale),
67 PRIMARY KEY (Garanzia,ProdottoElettronico)
68)ENGINE=InnoDB DEFAULT CHARSET=latin1;
69
70/* Creazione tabella AcquistoRicond */
71DROP TABLE IF EXISTS AcquistoRicond;
72CREATE TABLE AcquistoRicond (
73 ProdottoRicondizionato INT UNSIGNED PRIMARY KEY
74 REFERENCES ProdottoRicondizionato(Codice),
75 Ordine INT UNSIGNED NOT NULL
76 REFERENCES Ordine(CodiceOrdine)
77)ENGINE=InnoDB DEFAULT CHARSET=latin1;
78
79/* Creazione tabella Guasto */
80DROP TABLE IF EXISTS Guasto;
81CREATE TABLE Guasto (
82 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
83 Descrizione TEXT,
84 Nome CHAR(100) NOT NULL,
85 Domanda INT UNSIGNED NOT NULL
86 REFERENCES Domanda(Codice)
87)ENGINE=InnoDB DEFAULT CHARSET=latin1;
88
89/* Creazione tabella Errore */
90DROP TABLE IF EXISTS Errore;
91CREATE TABLE Errore (
92 Guasto INT UNSIGNED
93 REFERENCES Guasto(Codice),
94 ProdottoElettronico INT UNSIGNED
95 REFERENCES ProdottoElettronico(CodSeriale),
96 PRIMARY KEY (Guasto,ProdottoElettronico)
97)ENGINE=InnoDB DEFAULT CHARSET=latin1;
98
99/* Creazione tabella Domanda */
100DROP TABLE IF EXISTS Domanda;
101CREATE TABLE Domanda (
102 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
103 Testo TEXT NOT NULL,
104 Rimedio INT UNSIGNED NOT NULL
105 REFERENCES Rimedio(Codice),
106 Successiva INT UNSIGNED
107)ENGINE=InnoDB DEFAULT CHARSET=latin1;
108
109/* Creazione tabella Rimedio */
110DROP TABLE IF EXISTS Rimedio;
111CREATE TABLE Rimedio (
112 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
113 Descrizione TEXT NOT NULL
114)ENGINE=InnoDB DEFAULT CHARSET=latin1;
115
116/* Creazione tabella Risoluzione */
117DROP TABLE IF EXISTS Risoluzione;
118CREATE TABLE Risoluzione (
119 CodErrore INT UNSIGNED
120 REFERENCES CodErrore(Codice),
121 Rimedio INT UNSIGNED
122 REFERENCES Rimedio(Codice),
123 PRIMARY KEY (CodErrore,Rimedio)
124)ENGINE=InnoDB DEFAULT CHARSET=latin1;
125
126/* Creazione tabella CodErrore */
127DROP TABLE IF EXISTS CodErrore;
128CREATE TABLE CodErrore (
129 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
130 Guasto INT UNSIGNED
131 REFERENCES Guasto(Codice)
132)ENGINE=InnoDB DEFAULT CHARSET=latin1;
133
134/* Creazione tabella Assistenza */
135DROP TABLE IF EXISTS Assistenza;
136CREATE TABLE Assistenza (
137 Ticket INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
138 Data DATE NOT NULL,
139 Ora TIME NOT NULL,
140 Account CHAR(100) NOT NULL
141 REFERENCES Account(NomeUtente),
142 Tecnico INT UNSIGNED NOT NULL
143 REFERENCES Tecnico(Matricola)
144)ENGINE=InnoDB DEFAULT CHARSET=latin1;
145
146/* Creazione tabella RicevutaFiscale */
147DROP TABLE IF EXISTS RicevutaFiscale;
148CREATE TABLE RicevutaFiscale (
149 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
150 Prezzo DOUBLE NOT NULL,
151 VociDiCosto TEXT NOT NULL,
152 MetodoDiPagamento CHAR(200) NOT NULL,
153 Assistenza INT UNSIGNED NOT NULL
154 REFERENCES Assistenza(Ticket)
155)ENGINE=InnoDB DEFAULT CHARSET=latin1;
156
157/* Creazione tabella Tecnico */
158DROP TABLE IF EXISTS Tecnico;
159CREATE TABLE Tecnico (
160 Matricola INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
161 Citta CHAR(100),
162 NumeroPreventivi INT UNSIGNED NOT NULL DEFAULT 0,
163 PreventiviAccettati INT UNSIGNED NOT NULL DEFAULT 0
164)ENGINE=InnoDB DEFAULT CHARSET=latin1;
165
166/* Creazione tabella Preventivo */
167DROP TABLE IF EXISTS Preventivo;
168CREATE TABLE Preventivo (
169 Numero INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
170 Stato CHAR(100) NOT NULL,
171 Descrizione TEXT NOT NULL,
172 Tecnico INT UNSIGNED NOT NULL
173 REFERENCES Tecnico(Matricola),
174 OrdineRiparazione INT UNSIGNED
175 REFERENCES OrdineRiparazione(Codice)
176)ENGINE=InnoDB DEFAULT CHARSET=latin1;
177
178/* Creazione tabella OrdineRiparazione */
179DROP TABLE IF EXISTS OrdineRiparazione;
180CREATE TABLE OrdineRiparazione (
181 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
182 NumeroParti INT UNSIGNED NOT NULL,
183 Data DATE NOT NULL,
184 DataConsegna DATE,
185 DataArrivo DATE
186)ENGINE=InnoDB DEFAULT CHARSET=latin1;
187
188/* Creazione tabella OrdineParte */
189DROP TABLE IF EXISTS OrdineParte;
190CREATE TABLE OrdineParte (
191 OrdineRiparazione INT UNSIGNED
192 REFERENCES OrdineRiparazione(Codice),
193 ParteDiRicambio INT UNSIGNED
194 REFERENCES ParteDiRicambio(Codice),
195 PRIMARY KEY (OrdineRiparazione,ParteDiRicambio)
196)ENGINE=InnoDB DEFAULT CHARSET=latin1;
197
198/* Creazione tabella ParteDiRicambio */
199DROP TABLE IF EXISTS ParteDiRicambio;
200CREATE TABLE ParteDiRicambio (
201 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
202 Nome CHAR(100),
203 Prezzo DOUBLE NOT NULL
204)ENGINE=InnoDB DEFAULT CHARSET=latin1;
205
206/* Creazione tabella Pertinenza */
207DROP TABLE IF EXISTS Pertinenza;
208CREATE TABLE Pertinenza (
209 ParteDiRicambio INT UNSIGNED
210 REFERENCES ParteDiRicambio(Codice),
211 Parte INT UNSIGNED
212 REFERENCES Parte(Codice),
213 PRIMARY KEY (ParteDiRicambio,Parte)
214)ENGINE=InnoDB DEFAULT CHARSET=latin1;
215
216/* Creazione tabella GaranziaPezzi */
217DROP TABLE IF EXISTS GaranziaPezzi;
218CREATE TABLE GaranziaPezzi (
219 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
220 Data DATE NOT NULL,
221 Durata INT UNSIGNED, -- mesi
222 Account CHAR(100) NOT NULL
223 REFERENCES Account(NomeUtente),
224 ProdottoElettronico INT UNSIGNED NOT NULL
225 REFERENCES ProdottoElettronico(CodSeriale),
226 ParteDiRicambio INT UNSIGNED
227 REFERENCES ParteDiRicambio(Codice)
228)ENGINE=InnoDB DEFAULT CHARSET=latin1;
229
230/* Creazione tabella ProdottoRicondizionato */
231DROP TABLE IF EXISTS ProdottoRicondizionato;
232CREATE TABLE ProdottoRicondizionato (
233 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
234 Prezzo DOUBLE NOT NULL,
235 Variante CHAR(100),
236 PartiSostituite TEXT NOT NULL,
237 LottoRicondizionato INT UNSIGNED
238 REFERENCES LottoRicondizionato(Codice),
239 Reso INT UNSIGNED
240 REFERENCES Reso(Codice)
241)ENGINE=InnoDB DEFAULT CHARSET=latin1;
242
243/* Creazione tabella LottoRicondizionato */
244DROP TABLE IF EXISTS LottoRicondizionato;
245CREATE TABLE LottoRicondizionato (
246 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
247 Dimensione INT UNSIGNED NOT NULL, -- m^2
248 Posizione CHAR(100) NOT NULL, -- area del magazzino
249 DataInserimento DATE NOT NULL,
250 DataEstrazione DATE DEFAULT NULL,
251 Magazzino INT UNSIGNED NOT NULL
252 REFERENCES Magazzino(Codice)
253)ENGINE=InnoDB DEFAULT CHARSET=latin1;
254
255/* Creazione tabella TestProdotto */
256DROP TABLE IF EXISTS TestProdotto ;
257CREATE TABLE TestProdotto (
258 ProdottoRicondizionato INT UNSIGNED PRIMARY KEY
259 REFERENCES ProdottoRicondizionato(Codice),
260 Test INT UNSIGNED NOT NULL
261 REFERENCES Test(Codice),
262 Esito CHAR(100) NOT NULL CHECK (Esito IN('successo','fallimento'))
263)ENGINE=InnoDB DEFAULT CHARSET=latin1;
264
265/* Creazione tabella Test */
266DROP TABLE IF EXISTS Test;
267CREATE TABLE Test (
268 Codice INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
269 Nome CHAR(100) NOT NULL,
270 Successivo INT UNSIGNED
271)ENGINE=InnoDB DEFAULT CHARSET=latin1;
272
273/* Creazione tabella Riguarda */
274DROP TABLE IF EXISTS Riguarda;
275CREATE TABLE Riguarda (
276 Test INT UNSIGNED
277 REFERENCES Test(Codice),
278 Parte INT UNSIGNED
279 REFERENCES Parte(Codice),
280 PRIMARY KEY (Test,Parte)
281)ENGINE=InnoDB DEFAULT CHARSET=latin1;