Voici comment je le fais:
Existe-t-il un moyen plus simple et plus standard de procéder?
Je dirais d’abord et avant tout: soyez cohérent.
Je pense que vous y êtes presque 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. Pensez à 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 à la foo
table 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 éventuellement introduire un nombre à la fin du nom de la clé étrangère pour prendre en charge plusieurs colonnes de référence.
Point 5 - Je voudrais éviter 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 voudrez peut-être introduire une convention de nommage pour les index - ce sera une aide précieuse pour tout travail sur les métadonnées de base de données que vous voudrez peut-être effectuer. Par exemple, vous voudrez peut-être simplement appeler un index foo_bar_idx1
ou foo_idx1
_ totalement à vous mais mérite d'être considéré.
Noms de colonne singulier ou pluriel
Il serait peut-être judicieux d’aborder la question épineuse du pluriel contre célibataire dans vos noms de colonne, ainsi que le nom de votre table. Ce sujet provoque souvent grands débats dans la communauté DB. Je voudrais coller avec des formes singulières pour les noms de table et les colonnes. Là. Je l'ai dit.
La chose principale ici est bien sûr la cohérence!
La cohérence est la clé de toute norme de nommage. Tant que c'est logique et cohérent, vous y êtes à 99%.
La norme elle-même est une préférence très personnelle. Si vous aimez votre norme, utilisez-la.
Pour répondre directement à votre question - non, MySQL n’a pas de convention/nom de nommage préféré, alors rouler vous-même est acceptable (et le vôtre semble logique).
MySQL a une courte description de leurs règles plus ou moins strictes:
https://dev.mysql.com/doc/internals/en/coding-style.html
Le style de code le plus courant pour MySQL par Simon Holywell:
Voir aussi cette question: Existe-t-il des directives concernant le style de codage publiées pour SQL?
Heureusement, PHP), les développeurs ne sont pas des "camel cas bigots" comme certaines communautés de développement que je connais.
Vos conventions sonnent bien.
Tant qu'ils sont a) simples et b) cohérents - je ne vois aucun problème :)
PS: Personnellement, je pense que 5) est exagéré ...