Sachez qu’il est intéressant dans une table de créer une clé unique qui identifie chaque nouvelle ligne. MySQL propose une fonction AUTO_INCREMENT qui permet de créer automatiquement une clé qui
s’incrémente de 1 à chaque nouvelle ligne. Chaque nom d’usage dans le club sera unique puisqu’il identifiera un membre, donc nom_usage peut servir de deuxième clé, de clé secondaire Pour créer la table, nous devons définir le type de chaque donnée et sa longueur.
Le nom d’usage est une chaîne de caractères dont nous pouvons limiter la
longueur à 25 caractères. Le mot de passe et le prénom sont de même type,
avec une longueur de 20 pour le mot de passe et de 25 pour le prénom.
Le code postal est constitué en France d’une série de cinq chiffres. Cette
donnée peut donc être de type numérique. Il vaut mieux lui donner un type
"chaîne de caractères" car des Québécois seront peut-être intéressés par
votre club (leur code postal est composé de lettres et de chiffres).
D’ailleurs, les neuf premiers départements français sont précédés d’un 0.
En règle générale, les codes postaux, les numéros de téléphone… sont de
type texte car ils ne sont pas des nombres mais des codes. Nous pourrions utiliser les accents pour les noms de champ MySQL. Nous les éviterons cependant pour préserver l’homogénéité des noms.
Récapitulons la liste des données :
* clef numérique AUTO_INCREMENT 11 (caractères) ;
* nom_usage texte 25 ;
* mot_passe texte 20 ;
* prenom texte 30 ;
* code_postal texte 12 ;
* ville texte 35 ;
* pays texte 35 ;
* email texte 50.
Nous avons tous les éléments pour créer notre table avec la commande
CREATE de MySQL :
CREATE TABLE membres (
clef int(11) NOT NULL auto_increment,
nom_usage varchar(25) NOT NULL default ’’,
mot_passe varchar(20) NOT NULL default ’’,
prenom varchar(30) NOT NULL default ’’,
code_postal varchar(12) NOT NULL default ’’,
ville varchar(35) NOT NULL default ’’,
pays varchar(35) NOT NULL default ’’,
email varchar(50) NOT NULL default ’’,
PRIMARY KEY (clef),
INDEX (clef),
UNIQUE KEY clef (clef),
)
Analysons maintenant cette commande. Nous avons le nom de la colonne
ou champ, le type de données, la longueur, l’attribut NULL ou NOT NULL,
l’attribut DEFAULT. Nous verrons la clé primaire, l’index et l’attribut
UNIQUE avant de revenir plus précisément à notre club.
NULL est une absence de valeur, ce qui est différent d’une valeur ou de 0.
L’option NOT NULL oblige à indiquer une valeur.
DEFAULT spécifie une valeur pour un champ même s’il a été oublié au
cours d’un INSERT dans le cas d’un champ comportant la spécification NOT NULL.
La clé primaire évite les doublons dans la table. L’inconvénient est que
vous ne pouvez la changer une fois qu’elle est choisie, d’où le choix d’une
clé auto-incrémentée. Ainsi à chaque insertion de données, vous n’aurez
pas besoin de créer une clé, elle prendra automatiquement la valeur de la
ligne précédente augmentée de 1 ou, par défaut, la valeur de 0 plus 1.
Cette clé indexée et unique permet une recherche rapide à l’intérieur de la
table. L’attribut UNIQUE désigne des clés secondaires. Ainsi les champs
nom_usage et mot_passe ne peuvent comporter de doublons. Chaque
membre possède bien sûr une identité unique. Cependant, nous n’avons
pas jugé intéressant de les caractériser ainsi dans la table MySQL. Il vaut
mieux continuer dans l’artisanat et faire la vérification "à la main", par
quelques lignes de code.
L’indexation améliore les temps de réponse d’une table. La clé primaire
est systématiquement indexée pour permettre à MySQL de vérifier si elle
existe déjà dans la table lors d’une insertion. Chaque champ avec la
caractéristique UNIQUE comprend un index.
Aucun commentaire:
Enregistrer un commentaire