From 7ed1a19fc90d2d571c030967e9dd36cc8fb080f5 Mon Sep 17 00:00:00 2001 From: Morph01 <145839520+Morph01@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:26:16 +0100 Subject: [PATCH] add SQL scripts for dataset creation and the beginning of data migration --- sql/script_creation_dataset.sql | 285 ++++++++++++++++++++++++++++++++ sql/script_migration_data.sql | 60 +++++++ 2 files changed, 345 insertions(+) create mode 100644 sql/script_creation_dataset.sql create mode 100644 sql/script_migration_data.sql diff --git a/sql/script_creation_dataset.sql b/sql/script_creation_dataset.sql new file mode 100644 index 0000000..4aea543 --- /dev/null +++ b/sql/script_creation_dataset.sql @@ -0,0 +1,285 @@ +CREATE TABLE classement ( + PRIMARY KEY (idclassement), + idclassement INTEGER AUTO_INCREMENT, + nom VARCHAR(42), + portee VARCHAR(42) +); + +CREATE TABLE classement_equipe ( + PRIMARY KEY (idclassement), + idclassement INTEGER AUTO_INCREMENT +); + +CREATE TABLE classement_individuel ( + PRIMARY KEY (idclassement), + idclassement INTEGER AUTO_INCREMENT +); + +CREATE TABLE equipe ( + PRIMARY KEY (idequipe), + idequipe INTEGER AUTO_INCREMENT, + nom VARCHAR(42) +); + +CREATE TABLE est_classe ( + PRIMARY KEY (idjoueur, idclassement), + idjoueur INTEGER NOT NULL, + idclassement INTEGER NOT NULL, + rang VARCHAR(42) +); + +CREATE TABLE est_lie_a ( + PRIMARY KEY (idclassement_composee, idclassement_composante), + idclassement_composee INTEGER, + idclassement_composante INTEGER, + quantite 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 participe ( + PRIMARY KEY (idtournoi, niveau, idjoueur), + idtournoi INTEGER NOT NULL, + niveau VARCHAR(42) NOT NULL, + idjoueur INTEGER NOT NULL, + a_joue VARCHAR(42), + est_qualifie VARCHAR(42) +); + +CREATE TABLE phase ( + PRIMARY KEY (idtournoi, niveau), + idtournoi INTEGER AUTO_INCREMENT, + niveau VARCHAR(42) NOT NULL, + date_p DATE +); + +CREATE TABLE sont_classes ( + PRIMARY KEY (idequipe, idclassement), + idequipe INTEGER NOT NULL, + idclassement INTEGER NOT NULL, + rang VARCHAR(42) +); + +CREATE TABLE tournoi ( + PRIMARY KEY (idtournoi), + idtournoi INTEGER AUTO_INCREMENT, + nom VARCHAR(42), + date_deb DATE, + date_fin DATE +); + +ALTER TABLE + classement_equipe +ADD + FOREIGN KEY (idclassement) REFERENCES classement (idclassement); + +ALTER TABLE + classement_individuel +ADD + FOREIGN KEY (idclassement) REFERENCES classement (idclassement); + +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_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 + joueur +ADD + FOREIGN KEY (idequipe) REFERENCES equipe (idequipe); + +ALTER TABLE + participe +ADD + FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); + +ALTER TABLE + participe +ADD + FOREIGN KEY (idtournoi, niveau) REFERENCES phase (idtournoi, niveau); + +ALTER TABLE + phase +ADD + FOREIGN KEY (idtournoi) REFERENCES tournoi (idtournoi); + +ALTER TABLE + sont_classes +ADD + FOREIGN KEY (idclassement) REFERENCES classement_equipe (idclassement); + +ALTER TABLE + sont_classes +ADD + FOREIGN KEY (idequipe) REFERENCES equipe (idequipe); + +CREATE TABLE comprend ( + PRIMARY KEY (idpartie, num_tour, idlancer), + idpartie INTEGER NOT NULL, + num_tour INTEGER NOT NULL, + idlancer INTEGER NOT NULL +); + +CREATE TABLE effectue ( + PRIMARY KEY (rang_couleur_valeur, idjoueur, idlancer), + rang_couleur_valeur VARCHAR(42) NOT NULL, + idjoueur INTEGER NOT NULL, + idlancer INTEGER NOT NULL +); + +CREATE TABLE partie ( + PRIMARY KEY (idpartie), + idpartie INTEGER AUTO_INCREMENT, + date_partie DATE, + horaire VARCHAR(42), + duree VARCHAR(42), + etat VARCHAR(42) +); + +CREATE TABLE tour ( + PRIMARY KEY (idpartie, num_tour), + num_tour INTEGER NOT NULL, + idpartie INTEGER NOT NULL +); + +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 + tour +ADD + FOREIGN KEY (idpartie) REFERENCES partie (idpartie); + +CREATE TABLE carte ( + PRIMARY KEY (idcarte), + idcarte INTEGER AUTO_INCREMENT, + niveau VARCHAR(42), + img VARCHAR(42), + points VARCHAR(42) +); + +CREATE TABLE est_compose ( + PRIMARY KEY (idcarte, idplateau), + idcarte INTEGER NOT NULL, + idplateau INTEGER NOT NULL, + rang VARCHAR(42) +); + +CREATE TABLE plateau ( + PRIMARY KEY (idplateau), + idplateau INTEGER AUTO_INCREMENT, + taille VARCHAR(42) +); + +ALTER TABLE + est_compose +ADD + FOREIGN KEY (idplateau) REFERENCES plateau (idplateau); + +ALTER TABLE + est_compose +ADD + FOREIGN KEY (idcarte) REFERENCES carte (idcarte); + +CREATE TABLE choisit_main ( + PRIMARY KEY (idjoueur, num_tour), + idjoueur INTEGER NOT NULL, + num_tour INTEGER NOT NULL, + nb_de_rouge VARCHAR(42), + nb_de_jaune VARCHAR(42), + nb_de_bleu VARCHAR(42) +); + +ALTER TABLE + choisit_main +ADD + FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); + +CREATE TABLE tente_validation ( + PRIMARY KEY (num_tour, idjoueur, idcarte), + num_tour INTEGER NOT NULL, + idjoueur INTEGER NOT NULL, + idcarte INTEGER NOT NULL, + nb_tentatives VARCHAR(42) +); + +ALTER TABLE + tente_validation +ADD + FOREIGN KEY (idcarte) REFERENCES carte (idcarte); + +ALTER TABLE + tente_validation +ADD + FOREIGN KEY (idjoueur) REFERENCES joueur (idjoueur); + +CREATE TABLE contrainte ( + PRIMARY KEY (idcontrainte), + idcontrainte INTEGER AUTO_INCREMENT, + couleur VARCHAR(42) +); + +CREATE TABLE face_de_de ( + PRIMARY KEY (idcontrainte), + idcontrainte INTEGER AUTO_INCREMENT, + valeur VARCHAR(42) +); + +CREATE TABLE serie_au_choix ( + PRIMARY KEY (idcontrainte), + idcontrainte INTEGER AUTO_INCREMENT, + nombre VARCHAR(42) +); + +CREATE TABLE seuil_de_des ( + PRIMARY KEY (idcontrainte), + idcontrainte INTEGER AUTO_INCREMENT, + valeur VARCHAR(42), + sens VARCHAR(42) +); + +ALTER TABLE + face_de_de +ADD + FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); + +ALTER TABLE + serie_au_choix +ADD + FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); + +ALTER TABLE + seuil_de_des +ADD + FOREIGN KEY (idcontrainte) REFERENCES contrainte (idcontrainte); \ No newline at end of file diff --git a/sql/script_migration_data.sql b/sql/script_migration_data.sql new file mode 100644 index 0000000..44306f7 --- /dev/null +++ b/sql/script_migration_data.sql @@ -0,0 +1,60 @@ +INSERT INTO + `partie`( + `idpartie`, + `date_partie`, + `horaire`, + `duree`, + `etat` + ) +SELECT + DISTINCT id_partie, + dateP, + heureP, + ROUND(durée_secondes / 60), + CASE + état + WHEN 'T' THEN 'terminée' + WHEN 'AV' THEN 'a venir' + WHEN 'EC' THEN 'en cours' + END +FROM + donnees_fournies.instances1; + +INSERT INTO + `joueur`( + `idjoueur`, + `nom`, + `prenom`, + `pseudo`, + `annee_nais`, + `email` + ) +SELECT + DISTINCT id_joueur, + nom, + prénom, + pseudo, + YEAR(date_naiss), + email +FROM + donnees_fournies.instances1; + +INSERT INTO + `contrainte`(`idcontrainte`, `couleur`) +SELECT + DISTINCT id_contrainte, + couleur +FROM + donnees_fournies.instances2; + +-- INSERT INTO +-- `face_de_de`(`idcontrainte`, `valeur`) +-- SELECT +-- id_contrainte, +-- valeur +-- FROM +-- donnees_fournies.instances2 +-- WHERE +-- nom = 'face_de_dé' +-- YA UN GROS PROBLEME DANS LA BASE, QUAND YA PLUSIEURS DES DIFFERENTS L'ID CONTRAINTE QUI NE PEUX ETRE MULTIPLE A CAUSE DU PRIMARY KEY NE PERMET +-- PAS DE MODELISER LES CARTES AVEC PLUSIEURS DES DE DIFFERENTES COULEURS (CAR ILS ONT PLUSIEURS CONTRAINTES) \ No newline at end of file