add SQL scripts for dataset creation and the beginning of data migration

This commit is contained in:
Morph01
2024-03-24 15:26:16 +01:00
parent 04f12618cd
commit 7ed1a19fc9
2 changed files with 345 additions and 0 deletions

View File

@@ -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);

View File

@@ -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)