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.
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="...">
-
type="email"
permet une validation HTML - maxlength="32"
- L'attribut required est inutile si le type="email"
- L'attribut name="..." est requis vu que l'e-mail sera envoyé à un fichier PHP pour être stocké dans la base de données.
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.