Page 1 sur 1

optimisé une table

Posté : 31 mai 2009, 19:41
par nebil
Bonjour,
voila comme je commence vraiment a en avoir mare d'avoir des problèmes avec mes tables , je souhaiterai que quelqu'un m'aider pour les règles de façon définitive , car je pense avoir mal choisi les
Type Interclassement Attributs Null Défaut Extra Action
Version du client MySQL: 5.0.32
id= auto incrément peut contenir un nombre composé de 5 chiffes max pour l'instant. (jamais vide)

id_membre = idem a id (jamais vide)

marque = contient un nombre composé de 1 a 3 chiffre (jamais vide)

modele = contient un nombre composé de 1 a 3 chiffre (jamais vide)

mois = contient un nombre composé de 1 a 3 chiffre ou 2 chiffe au choix (jamais vide)

annee =contient un nombre composé de 4 chiffres (jamais vide)

prix = contient un nombre composé de de 1 a 6 chiffres (jamais vide)

accident= =contient un nombre composé de 1 chiffres (jamais vide)

carburant =contient un nombre composé de 1 chiffres (jamais vide)

kilometrage =ccontient un nombre composé de 5 chiffres (jamais vide)

kilometrage =contient un nombre composé de 1 a 3 chiffre ou 2 chiffes au choix (jamais vide)

vehicule_etat =contient un nombre composé de 1 chiffres (jamais vide)

transmission =contient un nombre composé de 1 chiffres (jamais vide)

cylindree =contient un nombre composé de 1 a 2 chiffre ou 2 chiffes au choix (jamais vide)

couleur_inter =contient un nombre composé de 1 a 2 chiffre ou 2 chiffes au choix (jamais vide)

type_carro =contient un nombre composé de 1 chiffres (jamais vide)

couleur_carro =contient un nombre composé de 1 a 2 chiffre ou 2 chiffes au choix (jamais vide)

puissance =contient un nombre composé de 2 a 3 chiffre ou 3 chiffes au choix (jamais vide)

cylindre =contient un nombre composé de 1 chiffres (jamais vide)

pays =contient un nombre composé de 1 chiffres (jamais vide)

cp =contient un nombre composé de 5 chiffres (jamais vide)

description =contient un texte composé de 0 a 200 caractère (peut etre vide)

site =contient un texte composé de 0 a 30 caractère (peut etre vide)

date =contient un nombre composé de 11 chiffres (jamais vide)

Posté : 01 juin 2009, 12:48
par Victor BRITO
Pourrais-tu dire plus précisément ce qui te pose problème ?

À quoi ressemblent tes tables dans leur structure ?

Posté : 02 juin 2009, 10:31
par Invité
Bonjour,
voila ma table

les problemes sont de choir les types sans prendre plus de place qu'il ne faut
et ne pas ce retrouver a avoir des donnée tronqué car type mal choisi.

et je maitrise mal les index et clé primaire aussi
Image

Re: optimisé une table

Posté : 02 juin 2009, 19:32
par Victor BRITO
Pour ma part, j'essaierais de créer la table comme suit :

Code : Tout sélectionner

CREATE TABLE nom_de_la_table ( id INT(5) UNSIGNED NOT NULL AUTO_INCREMENT, id_membre INT(5) UNSIGNED NOT NULL, marque SMALLINT(3) UNSIGNED NOT NULL, modele SMALLINT(3) UNSIGNED NOT NULL, annee_mois DATE NOT NULL, prix INT(6) UNSIGNED NOT NULL, accident TINYINT(1) UNSIGNED NOT NULL, carburant TINYINT(1) UNSIGNED NOT NULL, kilometrage INT(5) UNSIGNED NOT NULL, vehicule_etat TINYINT(1) UNSIGNED NOT NULL, transmission TINYINT(1) UNSIGNED NOT NULL, cylindree TINYINT(2) UNSIGNED NOT NULL, couleur_inter TINYINT(2) UNSIGNED NOT NULL, type_carro TINYINT(1) UNSIGNED NOT NULL, couleur_carro TINYINT(2) UNSIGNED NOT NULL, puissance SMALLINT(3) UNSIGNED NOT NULL, cylindre TINYINT(1) UNSIGNED NOT NULL, pays TINYINT(1) UNSIGNED NOT NULL, cp INT(5) ZEROFILL NOT NULL, description VARCHAR(200) NULL, site VARCHAR(30) NULL, date TIMESTAMP NOT NULL, PRIMARY KEY (id), KEY cle_membre (id_membre) ) DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
En ce qui concerne le mois et l'année, il y a un moyen d'optimiser en regroupant ces deux données dans une seule colonne, de type DATE (la date étant formatée au format AAAA-MM-JJ). Si tu ne veux stocker que l'année, la colonne peut alors être de type YEAR. Quant à la date à 11 chiffres, il s'agit du timestamp Unix, auquel cas le type TIMESTAMP est approprié pour la colonne devant stocker le timestamp. (cf. présentation des types DATE et YEAR dans le manuel MySQL)

Les types TINYINT, SMALLINT et MEDIUMINT, non signés, ne peuvent stocker qu'une valeur comprise, respectivement, entre 0 et 255, 0 et 65535 et 0 et 16777215 (cf. présentation des types numériques dans le manuel MySQL).

Quant à l'option ZEROFILL, il permet d'enregistrer, dans une colonne de type numérique, un code postal comme celui de Bourg-en-Bresse (01000).

En gros, je vois peu de modifications à apporter.

Posté : 05 juin 2009, 09:37
par Invité
Merci beaucoup.

Posté : 06 juin 2009, 00:02
par albat
Modération :
nebil, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.