Existe-t-il une convention de nommage pour MySQL?

Voici comment je le fais:

  1. Les noms de tables sont en minuscules, utilisent des traits de soulignement pour séparer les mots et sont singuliers (par exemple, ‘foo’, ‘foo_bar’, etc.
  2. J’ai généralement (pas toujours) un PK d’incrémentation automatique. J’utilise la convention suivante: tablename_id (par exemple ‘foo_id’, ‘foo_bar_id’, etc.).
  3. Lorsqu’une table contient une colonne qui est une clé étrangère, je copie simplement le nom de colonne de cette clé à partir de la table d’où elle provient. Par exemple, disons que la table ‘foo_bar’ a le FK ‘id_foo’ (où ‘foo_id’ est la PK de ‘foo’).
  4. Lorsque vous définissez des FK pour renforcer l’intégrité de la référence, j’utilise ce qui suit: nom_table_nom_fichier_fichier (par exemple, en ajoutant l’exemple 3, il s’agirait de ‘foo_bar_foo_id’). Comme il s’agit d’une combinaison nom de nom / colonne, il est garanti qu’il est unique dans la firebase database.
  5. Je commande les colonnes comme ceci: PK, FK, puis le rest des colonnes par ordre alphabétique

Existe-t-il un moyen plus efficace de le faire?

Je dirais d’abord et avant tout: soyez cohérent.

Je pense que vous ê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. Pensez à la façon dont vous feriez face à une seule table foo_bar qui contient les colonnes foo_id et another_foo_id toutes deux faisant référence à la colonne foo_id table foo . Vous voudrez peut-être réfléchir à la manière de gérer cela. C’est un peu un cas en coin cependant!

Point 4 – Similaire au point 3. Vous voudrez peut-être introduire un nombre à la fin du nom de la clé étrangère pour tenir compte de plusieurs colonnes de référence.

Point 5 – J’éviterais cela. Il vous fournit peu et devient un casse-tête lorsque vous souhaitez append ou supprimer des colonnes d’une table à une date ultérieure.

Quelques autres points sont:

Conventions de dénomination d’index

Vous souhaiterez peut-être introduire une convention de dénomination pour les index – ce sera une aide précieuse pour tout travail de métadonnées de firebase database que vous pourriez souhaiter effectuer. Par exemple, vous voudrez peut-être simplement appeler un index foo_bar_idx1 ou foo_idx1 – à vous de foo_idx1 , mais cela vaut la peine de le considérer.

Noms de singulier et de pluriel de colonne

Il pourrait être judicieux d’aborder le problème épineux du pluriel contre le simple dans vos noms de colonne ainsi que le nom de votre table. Ce sujet provoque souvent de grands débats dans la communauté DB. Je restrais avec des formes singulières pour les noms de tables et les colonnes. Là. Je l’ai dit

L’essentiel ici est bien sûr la cohérence!

La cohérence est la clé de toute norme de dénomination. 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 – donc si vous aimez votre norme, lancez-la.

Pour répondre à votre question directement – non, MySQL n’a pas de convention / norme de nommage préférée, donc rouler vous-même, c’est bien (et le votre semble logique).

MySQL a une courte description de leurs règles plus ou moins ssortingctes:

https://dev.mysql.com/doc/internals/fr/coding-style.html

Style de codage le plus courant pour MySQL par Simon Holywell:

http://www.sqlstyle.guide/

Voir aussi cette question: existe-t-il des directives de style de codage publiées pour SQL?

Heureusement, les développeurs PHP ne sont pas des “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 excessif …