Salut,
Il est clair que tu es parti sur une mauvaise voie, tu as créé tes tables à la volée.
MONUMENTAL erreur !
il faut toujours conceptualiser sa base de données !
(Aux admins qui passent ^^ Il manque une section Conception avant Algorithme & Solutions :p)
Pour se faire, plusieurs outils s'offrent à toi; certains payant, d'autres open source dont MySQL Workbench, que je te conseille, également DBDesigner4, que d'autres te conseilleront mais que j'espère tu éviteras pour la raison qui suit, son développeur fût débauché pour créer MySQL Workbench; de ce fait il ne maintient plus sa version
Avec un tel logiciel aggrémenté de méthodes d'analyse et de conception telle la méthode Merise t'aurais permis de nous donner plus d'outils à la compréhension de ton problème.
Pour l'optimisation de ta base de données, je vais te donner un premier conseil; c'est une règle d'or dans la conception d'une base de données :
Premièrement. Jamais de redondance de données tu feras !
Exemple:
Voici, mes deux centimes pour t'éclairer face à ton problème.
N.B : Bien plus que l'optimisation, si tu revois la conception de tes tables, (attention, je me lâche sans connaissance de ton projet ^^) je suis sûr que tu divises le nombre de tables total estimé (200) par 3 minimum
Il est clair que tu es parti sur une mauvaise voie, tu as créé tes tables à la volée.
MONUMENTAL erreur !
il faut toujours conceptualiser sa base de données !
(Aux admins qui passent ^^ Il manque une section Conception avant Algorithme & Solutions :p)
Pour se faire, plusieurs outils s'offrent à toi; certains payant, d'autres open source dont MySQL Workbench, que je te conseille, également DBDesigner4, que d'autres te conseilleront mais que j'espère tu éviteras pour la raison qui suit, son développeur fût débauché pour créer MySQL Workbench; de ce fait il ne maintient plus sa version
Avec un tel logiciel aggrémenté de méthodes d'analyse et de conception telle la méthode Merise t'aurais permis de nous donner plus d'outils à la compréhension de ton problème.
Pour l'optimisation de ta base de données, je vais te donner un premier conseil; c'est une règle d'or dans la conception d'une base de données :
Premièrement. Jamais de redondance de données tu feras !
Exemple:
CREATE TABLE test.CLIENT(
ID INT(10) NOT NULL,
NOM VARCHAR(64) NOT NULL,
PRENOM VARCHAR(64) NOT NULL,
ADRESSE VARCHAR(255) NOT NULL,
TELEPHONE VARCHAR(32) NULL,
PRIMARY KEY(ID)
)
ENGINE = InnoDB
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
CREATE TABLE test.COMMANDE(
ID INT(10) NOT NULL,
NOM VARCHAR(64) NOT NULL,
PRENOM VARCHAR(64) NOT NULL,
PRODUIT VARCHAR(255) NOT NULL,
PRIMARY KEY(ID)
)
ENGINE = InnoDB
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
On voit ici de la redondance de données, voici comment l'on procède :
CREATE TABLE test.CLIENT(
ID INT(10) NOT NULL,
NOM VARCHAR(64) NOT NULL,
PRENOM VARCHAR(64) NOT NULL,
ADRESSE VARCHAR(255) NOT NULL,
TELEPHONE VARCHAR(32) NULL,
PRIMARY KEY(ID)
)
ENGINE = InnoDB
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
CREATE TABLE test.COMMANDE(
ID INT(10) NOT NULL,
ID_CLIENT INT(10) NOT NULL,
ADRESSE VARCHAR(255 ) NOT NULL,
PRODUIT VARCHAR(255 ) NOT NULL,
PRIMARY KEY(ID)
)
ENGINE = InnoDB
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
Petite subtilité, on voit ici le champ ADRESSE dans la table COMMANDE, 2 cas s'offrent ai-je fait de la redondance de données ?Voici, mes deux centimes pour t'éclairer face à ton problème.
N.B : Bien plus que l'optimisation, si tu revois la conception de tes tables, (attention, je me lâche sans connaissance de ton projet ^^) je suis sûr que tu divises le nombre de tables total estimé (200) par 3 minimum