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 ...)
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
UPDATE my_table SET name = 5;
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
ou PascalCase
(ou UPPER_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 .
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
et mytable
sont tous la même chose, mais "MYTABLE"
et "MyTable"
sont différents;
Sauf indication contraire:
Les identificateurs 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 d'un identificateur ou d'un mot clé peuvent être des lettres, des traits de soulignement, des chiffres (0-9) ou des signes dollar ($).
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.
lower_case_underscore_separated_identifiers
" ... récemment, j'ai entendu cela décrit comme "cas de serpent"