Je dirais qu'avant tout :soyez cohérent.
Je pense que vous en êtes presque là avec les conventions que vous avez décrites dans votre question. Quelques commentaires cependant :
Les points 1 et 2 sont bons je pense.
Point 3 - malheureusement, ce n'est pas toujours possible. Réfléchissez à la façon dont vous feriez face à une seule table foo_bar
qui a des colonnes foo_id
et another_foo_id
qui font tous deux référence à foo
tableau foo_id
colonne. Vous voudrez peut-être réfléchir à la façon de gérer cela. C'est un peu un cas de coin cependant !
Point 4 - Similaire au point 3. Vous pouvez introduire un nombre à la fin du nom de la clé étrangère pour répondre à plusieurs colonnes de référence.
Point 5 - J'éviterais cela. Il vous fournit peu et deviendra un casse-tête lorsque vous souhaitez ajouter ou supprimer des colonnes d'une table à une date ultérieure.
Quelques autres points sont :
Conventions de dénomination des index
Vous souhaiterez peut-être introduire une convention de dénomination pour les index - cela sera d'une grande aide pour tout travail de métadonnées de base de données que vous pourriez vouloir effectuer. Par exemple, vous pouvez simplement appeler un index foo_bar_idx1
ou foo_idx1
- totalement à vous mais mérite d'être considéré.
Noms de colonne au singulier ou au pluriel
Ce serait peut-être une bonne idée d'aborder la question épineuse du pluriel par rapport au simple dans vos noms de colonnes ainsi que dans vos noms de table. Ce sujet provoque souvent de de grands débats dans la communauté DB. Je m'en tiendrai aux formes singulières pour les noms de table et les colonnes. Là. Je l'ai dit.
L'essentiel ici est bien sûr la cohérence !