web-dev-qa-db-fra.com

Conventions officielles de capitalisation PostgreSQL

Existe-t-il une convention PostreSQL officielle concernant la capitalisation dans les noms de base de données, de table et de champ?

Les exemples sur le site officiel suggèrent un minuscule et _ Séparation des mots, et je me demande si cette politique est officielle.

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);
14
Adam Matan

Je vais essentiellement refléter les commentaires de Verace et le dire, le rendant semi-officiel:

Il n'y a personne meilleure pratique qui couvrira toutes les circonstances. Ce qui suit fait les hypothèses suivantes (et que faire si vous ne l'avez pas fait):

  • Vous en avez déjà discuté avec votre équipe (les personnes travaillant seules doivent souvent se décider)
  • Il n'y a pas de définition de style formalisée pour SQL déjà dans votre équipe (sinon vous ne nous le demanderiez pas)
  • Il n'y a pas de définition de style formalisée pour aucun code (suivez les mêmes conventions de base déjà établies pour d'autres langues et formalisez un style)

Donc le reste est quelque peu subjectif mais basé sur l'expérience

  1. En ce qui concerne les noms de table
    1. Vous devriez opter pour des noms d'entités singuliers (cela facilite la documentation)
    2. Vous devez utiliser Pascal Case ici
  2. En ce qui concerne les noms de champ
    1. Utilisez camelCase sur les noms de vos champs
    2. Utilisez des noms courts au singulier à moins que la définition ne prenne définitivement un sens au pluriel (elle ne le fait presque jamais)
  3. En ce qui concerne vos propres noms de fonction ou de procédure stockée
    1. Utiliser underscore_separation
    2. Utiliser la dénomination des champs pour le paramétrage
  4. Lorsqu'il s'agit de fonctions de base de données intégrées ou de noms de langue (par exemple SELECT)
    1. À moins qu'il ne soit nécessaire de capitaliser d'une certaine manière, utilisez TOUS LES CAPSULES
    2. Connaître les API de votre langue pour savoir ce qui est raisonnable ou requis
  5. En ce qui concerne l'espacement
    1. Beaucoup de gens utilisent l'alignement des colonnes pour les mots clés et l'indentation pour les choses qui ne sont pas des mots clés
    2. Beaucoup de gens utilisent des virgules au début de la ligne lorsque les champs sont séparés sur chaque ligne (cela facilite la mise en commentaire d'un champ spécifique d'une liste de sélection)
    3. N'utilisez jamais d'espaces dans les noms de choses, pas même pour les en-têtes de valeur de retour.
  6. En matière de ponctuation
    1. Parenthèses - UTILISEZ-LES. Ils sont GRATUITS. Je promets.
    2. Point-virgule - UTILISEZ-LES. Ils ne vont pas te briser. Ils vous obligent à réfléchir à votre code. Et c'est une bonne hygiène.
    3. Retours chariot - Encore une fois, ils sont gratuits ;-) Et rendez votre code lisible.

Vous devez également reconnaître que pendant que j'essaie de vous aider à appliquer un guide de style générique, la communauté de Postgres n'utilise généralement pas camelCase ou PascalCase mais utilise à la place underscore_separation. Le bit vraiment important est de s'assurer que vous établissez et utilisez un style spécifique partout pour être cohérent .

21
jcolebrand

Un rapide Google révélera de nombreux sites qui indiquent les meilleures pratiques. Je dirais seulement deux choses - ne pas [~ # ~] jamais [~ # ~] utiliser les espaces "My Table Name" (le portage devient impossible en raison de différents mécanismes d'échappement; il en va de même pour tout caractère non alphanumérique). Avec ces types de mécanismes, vous devez normalement respecter la casse également. Il y a suffisamment de lettres et de mots dans la langue anglaise (ou la vôtre) et la longueur des identifiants est suffisamment longue (je ne connais aucun système ayant identificateur_longueur <32, PostgreSQL est 64). Et n'utilisez jamais de mots clés SQL (qui varient selon le SGBDR) qui feront la même chose.

Des déclarations comme

SELECT "Field" FROM "Table";

peut être valide! L'essentiel, c'est d'avoir une convention claire et relativement simple, puis de s'y tenir. Les gens ont des opinions différentes comme vous le découvrirez - lisez autour du sujet et choisissez ce qui vous semble le plus approprié. Voir ces sites 1 , 2 , , 4 , 5 , .. (il y en a beaucoup plus).

4
Vérace