Conventions de nommage PostgreSQL

Où puis-je trouver un manuel détaillé sur les conventions de nommage PostgreSQL? (noms de table contre cas de chameau, séquences, clés primaires, contraintes, index, etc.)

En ce qui concerne les noms de tables, les cas, etc., la convention dominante est la suivante:

  • Mots-clés SQL: UPPER CASE
  • noms (identificateurs): lower_case_with_underscores

Par exemple :

 UPDATE my_table SET name = 5; 

Ceci n’est pas écrit en pierre, mais le bit concernant les identifiants en minuscule est fortement recommandé, IMO. Postgresql traite les identifiants sans tenir compte des citations (il les plie en fait en minuscules en interne), et les rend sensibles à la casse lorsqu’ils sont cités; beaucoup de gens ne sont pas conscients de cette idiosyncrasie. En utilisant toujours les minuscules, vous êtes en sécurité. Quoi qu’il en soit, il est acceptable d’utiliser camelCase ou PascalCase (ou UPPER_CASE ), tant que vous êtes cohérent: soit des identifiants de citation toujours ou jamais (et cela inclut la création du schéma!).

Je ne connais pas beaucoup plus de conventions ou de guides de style. Les clés de substitution sont normalement faites à partir d’une séquence (généralement avec la macro serial ), il serait pratique de s’en tenir à ces noms si vous les créez à la main ( tablename_colname_seq ).

Voir aussi quelques discussions ici , ici et (pour SQL général) ici , le tout avec plusieurs liens connexes.

Il n’y a pas vraiment de manuel formel, car il n’y a pas de style ou de norme unique.

Tant que vous comprenez les règles de nommage des identifiants, vous pouvez utiliser ce que vous voulez.

En pratique, je trouve plus facile d’utiliser lower_case_underscore_separated_identifiers car il n’est pas nécessaire de les "Double Quote" partout pour préserver les cas, les espaces, etc.

Si vous vouliez nommer vos tables et fonctions "@MyAṕṕ! ""betty"" Shard$42" vous seriez libre de le faire, bien que ce serait difficile de taper partout.

Les principales choses à comprendre sont:

  • À moins que les guillemets ne soient entre guillemets, les identifiants sont MYTABLE minuscules, donc MyTable , MYTABLE et mytable sont identiques, mais "MYTABLE" et "MyTable" sont différents;

  • À moins de citer deux mots:

    Les identifiants SQL et les mots clés doivent commencer par une lettre (az, mais aussi des lettres avec des signes diacritiques et des lettres non latines) ou un trait de soulignement (_). Les caractères suivants dans un identifiant ou un mot-clé peuvent être des lettres, des traits de soulignement, des chiffres (0-9) ou des signes dollar ($).

  • Vous devez citer les mots-clés en double si vous souhaitez les utiliser comme identificateurs.

En pratique, je vous recommande fortement de ne pas utiliser de mots-clés comme identificateurs. Au moins évitez les mots réservés. Juste parce que vous pouvez nommer une table "with" ne signifie pas que vous devriez.