Conventions de nommage PostgreSQL

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

126
demandé sur Tod Birdsall 2010-05-21 02:17:41

2 réponses

en ce qui concerne les noms de tableaux, cas, etc, la convention prévalente est:

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

par exemple :

UPDATE my_table SET name = 5;

ce n'est pas écrit dans la pierre, mais le peu sur identificateurs en minuscules est fortement recommandé, IMO. Postgresql traite les identificateurs cas insensiblement lorsqu'ils ne sont pas cités (en fait, il les plie en minuscules à l'intérieur), et cas sensible lorsque cité; beaucoup de gens ne sont pas au courant de cette idiosyncrasie. En utilisant always lowercase 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 les identificateurs de citation toujours ou jamais (et cela inclut la création de schéma!).

Je ne suis pas au courant de beaucoup d'autres conventions ou guides de style. Les clés de substitution sont normalement fabriqués à partir d'une séquence (généralement avec la macro serial ), il serait commode de s'en tenir à ce nom pour ces séquences si vous les créez à la main ( tablename_colname_seq ).

Voir aussi la discussion ici , ici et (pour SQL) ici , le tout avec plusieurs liens connexes.

162
répondu leonbloy 2017-10-27 11:52:19

il n'y a pas vraiment de manuel formel, parce qu'il n'y a pas de style ou de norme unique.

tant que vous comprenez les règles de l'appellation d'identification vous pouvez utiliser ce que vous voulez.

dans la pratique, je trouve plus facile d'utiliser lower_case_underscore_separated_identifiers parce qu'il n'est pas nécessaire de "Double Quote" eux partout pour préserver cas, espaces, etc.

si vous voulez nommer vos tables et fonctions "@MyAṕṕ! ""betty"" Shard" tu serais libre de le faire, même si ce serait douloureux de taper Partout.

les principales choses à comprendre sont:

  • sauf double citation, les identificateurs sont pliés en minuscules, de sorte que MyTable , MYTABLE et mytable sont tous les mêmes, mais "MYTABLE" et "MyTable" sont différents;

  • sauf double citation:

    Les identificateurs SQL et les mots clés doivent commencer par une lettre (A-z, mais aussi des lettres avec des marques diacritiques et des lettres non latines) ou un trait de soulignement (_). Les caractères suivants d'un identificateur ou d'un mot clé peuvent être des lettres, des soulignements, des chiffres (0-9) ou des signes de dollars ($).

  • vous devez citer deux mots clés si vous souhaitez les utiliser comme identificateurs.

dans la pratique, je vous recommande fortement ne pas utiliser mots clés comme identificateurs. Au moins, évitez les mots réservés. Ce n'est pas parce que vous pouvez nommer une table "with" que vous devriez.

18
répondu Craig Ringer 2016-04-03 12:38:26