-- Création de la table PERSONNES
CREATE TABLE PERSONNES (
id_personne INT NOT NULL,
nom VARCHAR(255),
prenom VARCHAR(255),
mail VARCHAR(255),
telephone CHAR(20),
date_de_naissance DATE,
lien_portfolie VARCHAR(512),
PRIMARY KEY (id_personne)
);
-- Création de la table HACKATONS
CREATE TABLE HACKATONS (
id_hackaton INT NOT NULL,
nom VARCHAR(255),
nombre_places INT UNSIGNED,
date_limite DATE,
description VARCHAR(2048),
PRIMARY KEY (id_hackaton)
);
-- Création de la table PHASES
CREATE TABLE PHASES (
id_phase INT NOT NULL,
id_hackaton INT,
heure_debut DATETIME,
heure_fin DATETIME,
description VARCHAR(512),
PRIMARY KEY (id_phase),
FOREIGN KEY (id_hackaton) REFERENCES HACKATONS(id_hackaton)
);
-- Création de la table PROJETS
CREATE TABLE PROJETS (
id_projet INT NOT NULL,
nom VARCHAR(255),
description VARCHAR(1024),
PRIMARY KEY (id_projet)
);
-- Création de la table EQUIPES
CREATE TABLE EQUIPES (
id_equipes INT NOT NULL,
id_coach INT,
id_chef_de_projet INT,
id_hackaton INT,
id_projet INT,
nom VARCHAR(255),
lien_prototype VARCHAR(512),
PRIMARY KEY (id_equipes),
FOREIGN KEY (id_coach) REFERENCES PERSONNES(id_personne),
FOREIGN KEY (id_chef_de_projet) REFERENCES PERSONNES(id_personne),
FOREIGN KEY (id_hackaton) REFERENCES HACKATONS(id_hackaton),
FOREIGN KEY (id_projet) REFERENCES PROJETS(id_projet)
);
-- Création de la table JURYS
CREATE TABLE JURYS (
id_jury INT NOT NULL,
id_hackaton INT,
PRIMARY KEY (id_jury),
FOREIGN KEY (id_hackaton) REFERENCES HACKATONS(id_hackaton)
);
-- Création de la table JURYS_EQUIPES (table de liaison)
CREATE TABLE JURYS_EQUIPES (
id_jury INT NOT NULL,
id_equipes INT NOT NULL,
note INT,
PRIMARY KEY (id_jury, id_equipes),
FOREIGN KEY (id_jury) REFERENCES JURYS(id_jury),
FOREIGN KEY (id_equipes) REFERENCES EQUIPES(id_equipes)
);
-- Création de la table JURYS_PERSONNES (table de liaison)
CREATE TABLE JURYS_PERSONNES (
id_personne INT NOT NULL,
id_jury INT NOT NULL,
PRIMARY KEY (id_personne, id_jury),
FOREIGN KEY (id_personne) REFERENCES PERSONNES(id_personne),
FOREIGN KEY (id_jury) REFERENCES JURYS(id_jury)
);
-- Création de la table PERSONNES_EQUIPES (table de liaison)
CREATE TABLE PERSONNES_EQUIPES (
id_equipes INT NOT NULL,
id_personne INT NOT NULL,
PRIMARY KEY (id_equipes, id_personne),
FOREIGN KEY (id_equipes) REFERENCES EQUIPES(id_equipes),
FOREIGN KEY (id_personne) REFERENCES PERSONNES(id_personne)
);
-- Création de la table PERSONNES_HACKATONS (table de liaison)
CREATE TABLE PERSONNES_HACKATONS (
id_personne INT NOT NULL,
id_hackaton INT NOT NULL,
date_inscription DATETIME,
comptence VARCHAR(255),
PRIMARY KEY (id_personne, id_hackaton),
FOREIGN KEY (id_personne) REFERENCES PERSONNES(id_personne),
FOREIGN KEY (id_hackaton) REFERENCES HACKATONS(id_hackaton)
);