START TRANSACTION; CREATE TABLE carte ( PRIMARY KEY (idcarte), idcarte INTEGER NOT NULL, niveau VARCHAR(42), img VARCHAR(42), points VARCHAR(42) ); CREATE TABLE choisit_main ( PRIMARY KEY (idjoueur, idpartie, num_tour), idjoueur INTEGER NOT NULL, idpartie INTEGER NOT NULL, num_tour INTEGER NOT NULL, nb_de_rouge VARCHAR(42), nb_de_jaune VARCHAR(42), nb_de_bleu VARCHAR(42) ); CREATE TABLE classement ( PRIMARY KEY (idclassement), idclassement INTEGER AUTO_INCREMENT, nom VARCHAR(42), portee VARCHAR(42) ); CREATE TABLE classement_individuel ( PRIMARY KEY (idclassement, idjoueur), idclassement INTEGER AUTO_INCREMENT, idjoueur INTEGER NOT NULL, rang INTEGER DEFAULT NULL ); -- lancer de dé dans un tour CREATE TABLE comprend ( PRIMARY KEY (idpartie, num_tour, idlancer, numero_lancer_dans_tour), idpartie INTEGER NOT NULL, num_tour INTEGER NOT NULL, idlancer INTEGER NOT NULL, numero_lancer_dans_tour INTEGER NOT NULL ); CREATE TABLE contrainte ( PRIMARY KEY (idcontrainte), idcontrainte INTEGER NOT NULL, couleur VARCHAR(42) ); -- un roulement de 1 dé dans un lancer de 6 dés CREATE TABLE de_lance ( PRIMARY KEY (roulement_de_de, rang_couleur_valeur, idlancer), roulement_de_de INTEGER NOT NULL AUTO_INCREMENT, idlancer INTEGER NOT NULL, rang_couleur_valeur VARCHAR(42) NOT NULL ); -- un lancer de 6 dés CREATE TABLE effectue ( PRIMARY KEY (idlancer), idjoueur INTEGER NOT NULL, idlancer INTEGER NOT NULL AUTO_INCREMENT ); CREATE TABLE equipe ( PRIMARY KEY (idequipe), idequipe INTEGER AUTO_INCREMENT, nom VARCHAR(42) ); CREATE TABLE classement_equipe ( PRIMARY KEY (idclassement, idequipe), idclassement INTEGER AUTO_INCREMENT, idequipe INTEGER NOT NULL, rang INTEGER DEFAULT NULL ); CREATE TABLE est_classe ( PRIMARY KEY (idjoueur, idclassement), idjoueur INTEGER NOT NULL, idclassement INTEGER NOT NULL, rang VARCHAR(42) ); CREATE TABLE est_compose ( PRIMARY KEY (idcarte, idplateau), idcarte INTEGER NOT NULL, idplateau INTEGER NOT NULL, rang TINYINT ); CREATE TABLE est_contrainte ( PRIMARY KEY (idcarte, idcontrainte), idcarte INTEGER NOT NULL, idcontrainte INTEGER NOT NULL ); CREATE TABLE est_en_lien ( PRIMARY KEY (idclassement_1, idclassement_2), idclassement_1 INTEGER NOT NULL, idclassement_2 INTEGER NOT NULL, rang VARCHAR(42) ); CREATE TABLE est_en_position ( PRIMARY KEY (idjoueur, idpartie, num_tour), idjoueur INTEGER NOT NULL, idpartie INTEGER NOT NULL, num_tour INTEGER NOT NULL, position VARCHAR(42) ); CREATE TABLE est_lie_a ( PRIMARY KEY (idclassement_composee, idclassement_composante), idclassement_composee INTEGER, idclassement_composante INTEGER, hierarchie VARCHAR(42) ); CREATE TABLE face_de_de ( PRIMARY KEY (idcontrainte), idcontrainte INTEGER NOT NULL, valeur VARCHAR(42) ); CREATE TABLE joue ( PRIMARY KEY (idjoueur, idpartie), idjoueur INTEGER NOT NULL, idpartie INTEGER NOT NULL, couleur_pion MEDIUMINT UNSIGNED, rang VARCHAR(42) ); CREATE TABLE joueur ( PRIMARY KEY (idjoueur), idjoueur INTEGER AUTO_INCREMENT, nom VARCHAR(42), prenom VARCHAR(42), pseudo VARCHAR(42), annee_nais YEAR, email VARCHAR(80), idequipe INTEGER NULL DEFAULT NULL ); CREATE TABLE meme_au_choix ( PRIMARY KEY (idcontrainte), idcontrainte INTEGER NOT NULL, nombre VARCHAR(42), couleur VARCHAR(42) ); CREATE TABLE participe ( PRIMARY KEY (idtournoi, niveau, idjoueur), idtournoi INTEGER, niveau VARCHAR(42), idjoueur INTEGER NOT NULL, a_joue tinyint (1) DEFAULT NULL, est_qualifie tinyint (1) DEFAULT NULL ); CREATE TABLE partie ( PRIMARY KEY (idpartie), idpartie INTEGER NOT NULL AUTO_INCREMENT, date_partie DATE, horaire TIME, duree VARCHAR(42), etat VARCHAR(42), idplateau INTEGER, idtournoi INTEGER, niveau VARCHAR(42), UNIQUE (idtournoi, niveau) ); CREATE TABLE phase ( PRIMARY KEY (idtournoi, niveau), idtournoi INTEGER AUTO_INCREMENT, niveau VARCHAR(42), date_p DATE ); CREATE TABLE plateau ( PRIMARY KEY (idplateau), idplateau INTEGER AUTO_INCREMENT, taille VARCHAR(42) ); CREATE TABLE serie_au_choix ( PRIMARY KEY (idcontrainte), idcontrainte INTEGER NOT NULL, nombre VARCHAR(42) ); CREATE TABLE seuil_de_des ( PRIMARY KEY (idcontrainte), idcontrainte INTEGER AUTO_INCREMENT, valeur VARCHAR(42), sens VARCHAR(42) ); CREATE TABLE sont_classes ( PRIMARY KEY (idequipe, idclassement), idequipe INTEGER NOT NULL, idclassement INTEGER NOT NULL, rang VARCHAR(42) ); CREATE TABLE tente_validation ( PRIMARY KEY (idpartie, num_tour, idjoueur, idcarte), idpartie INTEGER NOT NULL, num_tour INTEGER NOT NULL, idjoueur INTEGER NOT NULL, idcarte INTEGER NOT NULL, nb_tentatives VARCHAR(42) ); CREATE TABLE tour ( PRIMARY KEY (idpartie, num_tour), idpartie INTEGER NOT NULL, num_tour INTEGER NOT NULL ); CREATE TABLE tournoi ( PRIMARY KEY (idtournoi), idtournoi INTEGER AUTO_INCREMENT, nom VARCHAR(42), date_deb DATE, date_fin DATE ); CREATE TABLE valide ( PRIMARY KEY (idcontrainte, idlancer), idcontrainte INTEGER NOT NULL, idlancer INTEGER NOT NULL ); ALTER TABLE choisit_main ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour); ALTER TABLE choisit_main ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE classement_equipe ADD FOREIGN KEY (idclassement) REFERENCES classement (idclassement); ALTER TABLE classement_equipe ADD FOREIGN KEY (idequipe) REFERENCES equipe (idequipe); ALTER TABLE classement_individuel ADD FOREIGN KEY (idclassement) REFERENCES classement (idclassement); ALTER TABLE classement_individuel ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE comprend ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour); ALTER TABLE effectue ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE est_classe ADD FOREIGN KEY (idclassement) REFERENCES classement_individuel (idclassement); ALTER TABLE est_classe ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE est_compose ADD FOREIGN KEY (idplateau) REFERENCES plateau (idplateau); ALTER TABLE est_compose ADD FOREIGN KEY (idcarte) REFERENCES carte (idcarte); ALTER TABLE est_contrainte ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); ALTER TABLE est_contrainte ADD FOREIGN KEY (idcarte) REFERENCES carte (idcarte); ALTER TABLE est_en_lien ADD FOREIGN KEY (idclassement_2) REFERENCES classement (idclassement); ALTER TABLE est_en_lien ADD FOREIGN KEY (idclassement_1) REFERENCES classement (idclassement); ALTER TABLE est_en_position ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour); ALTER TABLE est_en_position ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE est_lie_a ADD FOREIGN KEY (idclassement_composante) REFERENCES classement (idclassement); ALTER TABLE est_lie_a ADD FOREIGN KEY (idclassement_composee) REFERENCES classement (idclassement); ALTER TABLE face_de_de ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); ALTER TABLE joue ADD FOREIGN KEY (idpartie) REFERENCES partie (idpartie); ALTER TABLE joue ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE joueur ADD FOREIGN KEY (idequipe) REFERENCES equipe (idequipe); ALTER TABLE meme_au_choix ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); ALTER TABLE participe ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE participe ADD FOREIGN KEY (idtournoi, niveau) REFERENCES phase (idtournoi, niveau); ALTER TABLE partie ADD FOREIGN KEY (idtournoi, niveau) REFERENCES phase (idtournoi, niveau); ALTER TABLE partie ADD FOREIGN KEY (idplateau) REFERENCES plateau (idplateau); ALTER TABLE phase ADD FOREIGN KEY (idtournoi) REFERENCES tournoi (idtournoi); ALTER TABLE serie_au_choix ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); ALTER TABLE seuil_de_des ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); ALTER TABLE sont_classes ADD FOREIGN KEY (idclassement) REFERENCES classement_equipe (idclassement); ALTER TABLE sont_classes ADD FOREIGN KEY (idequipe) REFERENCES equipe (idequipe); ALTER TABLE tente_validation ADD FOREIGN KEY (idcarte) REFERENCES carte (idcarte); ALTER TABLE tente_validation ADD FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); ALTER TABLE tente_validation ADD FOREIGN KEY (idpartie, num_tour) REFERENCES tour (idpartie, num_tour); ALTER TABLE tour ADD FOREIGN KEY (idpartie) REFERENCES partie (idpartie); ALTER TABLE valide ADD FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); COMMIT;