You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Scripted/WEB/bd.sql

60 lines
1.3 KiB

-- ALTER USER 'root'@'localhost' IDENTIFIED BY 'p';
-- CREATE DATABASE scripted;
-- USE scripted;
-- DROP TABLE Contenir;
-- DROP TABLE Participer;
-- DROP TABLE Resoudre;
-- DROP TABLE Enigme;
-- DROP TABLE Partie;
-- DROP TABLE Utilisateur;
CREATE TABLE Utilisateur(
email varchar(50) PRIMARY KEY,
pseudo varchar(50),
mdp varchar(50),
estAdmin boolean
);
CREATE TABLE Enigme(
id integer PRIMARY KEY AUTOINCREMENT,
enonce varchar(250) NOT NULL,
aide varchar(250),
rappel varchar(250),
solution varchar(250) NOT NULL,
test varchar(250) NOT NULL,
tempsDeResolution numeric CHECK (tempsDeResolution >0),
points numeric CHECK (points >0)
);
CREATE TABLE Partie(
id integer PRIMARY KEY AUTOINCREMENT,
dateDebut date NOT NULL
);
CREATE TABLE Resoudre(
joueur varchar(50) REFERENCES Utilisateur(email),
enigme int REFERENCES Enigme(id),
partie int REFERENCES Partie(id),
classement int CHECK (classement >0),
indexEnigme int CHECK (indexEnigme >0),
temps numeric CHECK (temps >0),
enMulti boolean,
PRIMARY KEY(joueur, enigme, partie)
);
CREATE TABLE Contenir(
partie int REFERENCES Partie(id),
enigme int REFERENCES Enigme(id),
indexEnigme numeric UNIQUE,
PRIMARY KEY(partie, enigme)
);
CREATE TABLE Participer(
partie int REFERENCES Partie(id),
joueur varchar(50) REFERENCES Joueur(email),
etat int CHECK (etat IN (0,1,2)),
PRIMARY KEY(partie, joueur)
);