Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni

SQL_CREATE

Il documento definisce la struttura di un database per la gestione di un sistema di videogiochi, includendo tabelle per utenti, videogiochi, listini, sviluppatori, recensioni, valutazioni, ordini, dettagli ordini, stati ordini e preferiti. Ogni tabella ha relazioni tramite chiavi esterne e vincoli di integrità, come l'unicità e la cancellazione a cascata. Inoltre, è presente un trigger per garantire che le valutazioni siano comprese tra 1 e 5 stelle.

Caricato da

Francesco Carta
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
2 visualizzazioni

SQL_CREATE

Il documento definisce la struttura di un database per la gestione di un sistema di videogiochi, includendo tabelle per utenti, videogiochi, listini, sviluppatori, recensioni, valutazioni, ordini, dettagli ordini, stati ordini e preferiti. Ogni tabella ha relazioni tramite chiavi esterne e vincoli di integrità, come l'unicità e la cancellazione a cascata. Inoltre, è presente un trigger per garantire che le valutazioni siano comprese tra 1 e 5 stelle.

Caricato da

Francesco Carta
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 2

CREATE TABLE UTENTE(

ID_Utente INT AUTO_INCREMENT,


Username VARCHAR(20) UNIQUE NOT NULL,
Email VARCHAR(50) UNIQUE NOT NULL,
Password CHAR(128) NOT NULL,
PRIMARY KEY (ID_Utente)
);

CREATE TABLE VIDEOGIOCO(


ID_Gioco INT AUTO_INCREMENT,
Nome VARCHAR(50) NOT NULL,
Piattaforma VARCHAR(50) NOT NULL,
Genere VARCHAR(50) NOT NULL,
Data_Uscita DATE NOT NULL,
Descrizione VARCHAR(500) NOT NULL,
Immagine VARCHAR(200) UNIQUE NOT NULL,
PRIMARY KEY(ID_Gioco)
);

CREATE TABLE LISTINO(


ID_Gioco INT,
Prezzo FLOAT(5), NOT NULL
PRIMARY KEY (ID_Gioco),
FOREIGN KEY (ID_Gioco) REFERENCES VIDEOGIOCO(ID_Gioco) ON DELETE CASCADE
);

CREATE TABLE SVILUPPATORE(


ID_Gioco INT,
Sviluppatore VARCHAR(20),
PRIMARY KEY(ID_Gioco),
FOREIGN KEY (ID_Gioco) REFERENCES VIDEOGIOCO(ID_Gioco) ON DELETE CASCADE
);

CREATE TABLE RECENSIONE(


ID_Recensione INT AUTO_INCREMENT,
ID_Utente INT,
ID_Gioco INT,
Testo_recensione VARCHAR(250),
Data DATETIME NOT NULL,
PRIMARY KEY(ID_Recensione),
FOREIGN KEY (ID_Utente) REFERENCES UTENTE(ID_Utente) ON DELETE CASCADE,
FOREIGN KEY (ID_Gioco) REFERENCES VIDEOGIOCO(ID_Gioco)ON DELETE CASCADE
);

CREATE TABLE VALUTAZIONE(


ID_Recensione INT,
Stelle INT NOT NULL,
PRIMARY KEY(ID_Recensione),
FOREIGN KEY (ID_Recensione) REFERENCES RECENSIONE(ID_Recensione) ON DELETE CASCADE
);

CREATE TABLE ORDINE(


ID_Ordine INT AUTO_INCREMENT,
ID_Utente INT,
ID_Gioco INT,
PRIMARY KEY(ID_Ordine),
FOREIGN KEY (ID_Gioco) REFERENCES VIDEOGIOCO(ID_Gioco) ON DELETE CASCADE,
FOREIGN KEY (ID_Utente) REFERENCES UTENTE(ID_Utente) ON DELETE CASCADE
);
CREATE TABLE DETTAGLI_ORDINE(
ID_Ordine INT,
Data DATETIME NOT NULL,
Quantita INT(3),
PRIMARY KEY(ID_Ordine),
FOREIGN KEY (ID_Ordine) REFERENCES ORDINE(ID_Ordine) ON DELETE CASCADE
);

CREATE TABLE STATO_ORDINE(


ID_Ordine INT,
Stato BOOLEAN NOT NULL,
PRIMARY KEY(ID_Ordine),
FOREIGN KEY (ID_Ordine) REFERENCES ORDINE(ID_Ordine) ON DELETE CASCADE
);

CREATE TABLE PREFERITI(


ID_Gioco INT,
ID_Utente INT,
PRIMARY KEY(ID_Gioco, ID_Utente),
FOREIGN KEY (ID_Gioco) REFERENCES VIDEOGIOCO(ID_Gioco) ON DELETE CASCADE,
FOREIGN KEY (ID_Utente) REFERENCES UTENTE(ID_Utente) ON DELETE CASCADE
);

DELIMITER $$
/*
trigger utilizzat per controllare il numero di stelle inserite (min 1 max 5)
*/
CREATE TRIGGER check_stelle BEFORE INSERT ON VALUTAZIONE
FOR EACH ROW
BEGIN
IF NEW.Stelle < 1 OR NEW.Stelle > 5 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Stelle deve essere tra 1 e 5';
END IF;
END $$
DELIMITER ;

Potrebbero piacerti anche