Une base de données bien construite et une base de données qui comporte des tables bien étudiées par rapport aux interrogations qu’elle va subir ainsi que des index bien placés. Mais pas seulement.
Pour qu’une base de données soit performante, il faut aussi que chaque champ (un champ étant une colonne du tableau) soit correctement choisi par rapport aux données qu’il va contenir. Au moment de la création d’une table, on doit définir chaque champ : son type (numérique, textuel etc), sa longueur potentiel et d’autres paramètres. Ces définitions peuvent être révisées ultérieurement pour adapter le contenant (le type de champ) au contenu (les données). Mais il n’est pas rare de trouver des erreurs dans la définition des champs qui n’ont pas été choisis ou adaptés lors du développement du projet : parfois des champs textuels sont prévus et l’on y stocke des valeurs numériques, d’autre fois, les dates sont stockées dans des champs texte.
Une possibilité souvent oubliée est d’utiliser des champs de type set ou enum. Ce type de champ est très utile quand il faut stocker des informations contenues dans une liste finie de possibilités.
Imaginons que dans la base de données d’artistes que nous avons élaborée plus haut nous souhaitions indiquer le jour de repos de chaque artiste. Nous pourrions créer une colonne de texte de 8 caractères de large et la remplir par « vendredi  » ou « dimanche  » suivant le jour de congés hebdomadaire de l’artiste. Cela serait fort dommage. Il vaut mieux utiliser un champ enum qui aura comme différente possibilité (lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche). Pour chaque artiste le système ne stockera plus une chaîne de caractère mais une simple valeur bien moins gourmande renvoyant à la liste des possibilités.
Une base de données est également bien construite quand les tables qui la composent sont d’un format bien choisi. Il existe ainsi plusieurs formats de table qui peuvent cohabiter dans une même base. Il convient de vérifier que le format des tables correspond à l’utilisation que l’on souhaite en faire ou qu’il n’utilise pas un format ancien et dépassé comme on le voit parfois !
A lire ensuite :
Qu’est ce qu’un langage de programmation côté serveur ?
Article précédent :
Qu’est ce qu’un index dans une base de données ?