travis^__^
13-12-2012, 20:49
Salve a tutti, sono relativamente nuovo del mondo DBMS e ho un po' di problemi con le query.
In particolare devo creare un database di nome Progetto, contenente 3 tabelle:
STUDENTI(Matricola, Nome, Cognome, DataNascita, NumCel*)
LABORATORI(CodLab, Titolo, NumPostazioni, DataApertura)
ACCESSI(Matricola, CodLab, Data, OraInizio, OraFine*)
Ora io ho scritto queste query, ma EasyPHP mi restituisce errore quando legge l'ultima query, penso ci siano dei problemi con le chiavi esterne ma non sono sicuro. Ogni consiglio è ben accetto!
SET storage_engine=InnoDB;
SET FOREIGN_KEY_CHECKS=1;
CREATE DATABASE IF NOT EXISTS progetto;
USE progetto;
-- drop tables list
DROP TABLE IF EXISTS Studenti;
DROP TABLE IF EXISTS Laboratori;
DROP TABLE IF EXISTS Accessi;
CREATE TABLE IF NOT EXISTS Studenti (
Matricola VARCHAR(15) UNIQUE NOT NULL ,
Nome VARCHAR(255) NOT NULL ,
Cognome VARCHAR(255) NOT NULL ,
DataNascita VARCHAR (255) NOT NULL,
Tel VARCHAR(255) NULL ,
PRIMARY KEY (Matricola)
);
CREATE TABLE IF NOT EXISTS Laboratori (
CodLab VARCHAR(15) UNIQUE NOT NULL ,
Titolo VARCHAR(255) NOT NULL ,
DataApertura VARCHAR(255) NOT NULL ,
NumPostazioni INT NOT NULL ,
PRIMARY KEY (CodLab)
);
CREATE TABLE IF NOT EXISTS Accessi (
Matricola VARCHAR(15) NOT NULL ,
CodLab VARCHAR(15) NOT NULL ,
Data VARCHAR(15) NOT NULL ,
OraInizio TIME NOT NULL ,
OraFine TIME NOT NULL ,
PRIMARY KEY (Matricola,CodLab,Data,OraInizio) ,
FOREIGN KEY (Matricola )
REFERENCES Studenti(Matricola )
ON DELETE CASCADE
ON UPDATE CASCADE ,
FOREIGN KEY (CodLab )
REFERENCES Laboratori(CodLab )
ON DELETE CASCADE
ON UPDATE CASCADE,
);
In particolare devo creare un database di nome Progetto, contenente 3 tabelle:
STUDENTI(Matricola, Nome, Cognome, DataNascita, NumCel*)
LABORATORI(CodLab, Titolo, NumPostazioni, DataApertura)
ACCESSI(Matricola, CodLab, Data, OraInizio, OraFine*)
Ora io ho scritto queste query, ma EasyPHP mi restituisce errore quando legge l'ultima query, penso ci siano dei problemi con le chiavi esterne ma non sono sicuro. Ogni consiglio è ben accetto!
SET storage_engine=InnoDB;
SET FOREIGN_KEY_CHECKS=1;
CREATE DATABASE IF NOT EXISTS progetto;
USE progetto;
-- drop tables list
DROP TABLE IF EXISTS Studenti;
DROP TABLE IF EXISTS Laboratori;
DROP TABLE IF EXISTS Accessi;
CREATE TABLE IF NOT EXISTS Studenti (
Matricola VARCHAR(15) UNIQUE NOT NULL ,
Nome VARCHAR(255) NOT NULL ,
Cognome VARCHAR(255) NOT NULL ,
DataNascita VARCHAR (255) NOT NULL,
Tel VARCHAR(255) NULL ,
PRIMARY KEY (Matricola)
);
CREATE TABLE IF NOT EXISTS Laboratori (
CodLab VARCHAR(15) UNIQUE NOT NULL ,
Titolo VARCHAR(255) NOT NULL ,
DataApertura VARCHAR(255) NOT NULL ,
NumPostazioni INT NOT NULL ,
PRIMARY KEY (CodLab)
);
CREATE TABLE IF NOT EXISTS Accessi (
Matricola VARCHAR(15) NOT NULL ,
CodLab VARCHAR(15) NOT NULL ,
Data VARCHAR(15) NOT NULL ,
OraInizio TIME NOT NULL ,
OraFine TIME NOT NULL ,
PRIMARY KEY (Matricola,CodLab,Data,OraInizio) ,
FOREIGN KEY (Matricola )
REFERENCES Studenti(Matricola )
ON DELETE CASCADE
ON UPDATE CASCADE ,
FOREIGN KEY (CodLab )
REFERENCES Laboratori(CodLab )
ON DELETE CASCADE
ON UPDATE CASCADE,
);