Les bases de données

Règles et bonnes pratiques

Ces règles sont destinées aux futurs gestionnaires de la base de données. Elles visent notamment à faciliter l'écriture de requêtes SQL.

Faire c'est bien, documenter (pour les suivants) c'est mieux.

Nom d'une table

Le nom d'une table est composé des 37 caractères suivants : [a-z0-9] et underscore (_)

=> Il est en minuscules et ne contient jamais de caractères spéciaux : espace, caractère accentué, trait d'union, ...

Le nom d'une table est souvent au pluriel.

Nom d'un champ ou d'un un index

Le nom d'un champ, index, ... est composé des 63 caractères suivants : [a-zA-Z0-9] et underscore (_)

=> Il ne contient donc jamais de caractères spéciaux : espace, caractère accentué, trait d'union, ...

Le nom d'un champ commence toujours par une minuscule [a-z].

Autres conventions

Toute table contient une clé primaire. Le nom du champ lié à cette clé primaire débute par id_ suivi du nom de la table au singulier.

Lorsque le champ est lié à une clé étrangère le nom de ce champ débute par num_; le nom de la clé débute par FK_

num_XXXXX => FK_XXXXXn (où n>1 si nécessaire)

Le nom d'une clé primaire ou étrangère est toujours au singulier

Est dite table externe, celle qui ne contient pas de clé étrangère.

Le remplissage d'une base de données commence par celle des tables externes.


Les fichiers SQL sont codés en UTF-8 (car les données peuvent contenir des caractères spéciaux)
Avertissement : L'affichage de ces fichiers SQL dans un navigateur web (simple clic) affichera probablement certains caractères de manière "spéciale" (car, par défaut, les navigateurs web utilise la table ANSI utilisée par le système d'exploitation). Pour télécharger un fichier, il faut faire un clic droit > "Enregistrer le contenu lié sous ...".

Bonnes pratiques

id

Tout enregistrement doit disposer d'une clé primaire. Cela facilite son identification pour le modifier ou le supprimer.

email

Le champ email doit être unique => de type char(32) (ou char(40))

Une adresse e-mail peut avoir théoriquement une longueur de 256 caractères.
Toutefois, moins de 1% de ces adresses dépassent 32 caractères.

Le champ du formulaire doit être :

<input type="email" ... maxlength="32" name="...">

Le champ doit être unique puisque deux membres ne peuvent pas avoir la même adresse e-mail. Or, cette adresse est sous la forme d'une string. Un champ de type text de longueur variable ne peut pas être indexé.

On pourrait créer un second champ, email_md5 de type char(32), pour contenir la signature MD5 d'une adresse e-mail (de longueur variable). Mais, la signature MD5 retourne 32 caractères hexadécimaux. Il est alors plus performant de choisir directement le type char(32) ou char(40) pour un champ devant contenir une adresse e-mail.