Où puis-je trouver un manuel détaillé sur les conventions de dénomination PostgreSQL? (noms de table vs cas de chameau, séquences, clés primaires, contraintes, index, etc ...)
193
Où puis-je trouver un manuel détaillé sur les conventions de dénomination PostgreSQL? (noms de table vs cas de chameau, séquences, clés primaires, contraintes, index, etc ...)
Réponses:
En ce qui concerne les noms de tables, la casse, etc., la convention la plus courante est:
UPPER CASE
lower_case_with_underscores
Par exemple :
Ce n'est pas écrit dans la pierre, mais le peu sur les identifiants en minuscules est fortement recommandé, IMO. Postgresql traite les identifiants de manière insensible à la casse lorsqu'ils ne sont pas cités (il les plie en fait en minuscules en interne), et à la casse lorsqu'ils sont cités; beaucoup de gens ne sont pas conscients de cette idiosyncrasie. En utilisant toujours des minuscules, vous êtes en sécurité. Quoi qu'il en soit, il est acceptable d'utiliser
camelCase
ouPascalCase
(ouUPPER_CASE
), tant que vous êtes cohérent: citez toujours ou jamais les identifiants (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
serial
macro), il serait pratique de s'en tenir à cette dénomination pour ces séquences si vous les créez à la main (tablename_colname_seq
).Voir aussi une discussion ici , ici et (pour SQL général) ici , le tout avec plusieurs liens connexes.
Remarque: Postgresql 10 a introduit des
identity
colonnes comme un remplacement conforme à SQL pour serial .la source
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 dénomination des identifiants, vous pouvez utiliser ce que vous voulez.
En pratique, je trouve cela plus facile à utiliser
lower_case_underscore_separated_identifiers
car il ne leur est pas nécessaire"Double Quote"
partout de préserver le boîtier, les espaces, etc.Si vous vouliez nommer vos tables et
"@MyAṕṕ! ""betty"" Shard$42"
vos fonctions, vous seriez libre de le faire, même si ce serait pénible de taper partout.Les principales choses à comprendre sont:
À moins d'être entre guillemets, les identificateurs sont mis en minuscules, donc
MyTable
,MYTABLE
etmytable
sont tous la même chose, mais"MYTABLE"
et"MyTable"
sont différents;Sauf indication contraire:
Vous devez double-citer les mots-clés si vous souhaitez les utiliser comme identifiants.
En pratique, je vous recommande vivement de ne pas utiliser de mots clés comme identifiants. Évitez au moins les mots réservés. Ce
"with"
n'est pas parce que vous pouvez nommer une table que vous devriez le faire.la source
lower_case_underscore_separated_identifiers
" ... récemment, j'ai entendu cela décrit comme "cas de serpent"