Dove posso trovare un manuale dettagliato sulle convenzioni di denominazione PostgreSQL? (nomi di tabella vs. caso di cammello, sequenze, chiavi primarie, vincoli, indici, ecc ...)
Dove posso trovare un manuale dettagliato sulle convenzioni di denominazione PostgreSQL? (nomi di tabella vs. caso di cammello, sequenze, chiavi primarie, vincoli, indici, ecc ...)
Risposte:
Per quanto riguarda i nomi delle tabelle, i casi, ecc., La convenzione prevalente è:
UPPER CASElower_case_with_underscoresUPDATE my_table SET name = 5;
Questo non è scritto in pietra, ma la parte relativa agli identificatori in minuscolo è altamente raccomandata, IMO. Postgresql tratta gli identificatori senza maiuscole e minuscole quando non sono citati (li piega in realtà internamente in minuscolo) e, se citati, in modo sensibile; molte persone non sono consapevoli di questa idiosincrasia. Usando sempre minuscole sei al sicuro. Ad ogni modo, è accettabile usare camelCaseo PascalCase(o UPPER_CASE), purché tu sia coerente: o cita sempre gli identificatori (e questo include la creazione dello schema!).
Non sono a conoscenza di molte altre convenzioni o guide di stile. Le chiavi surrogate sono normalmente fatte da una sequenza (di solito con la serialmacro), sarebbe conveniente attenersi a quel nome per quelle sequenze se le crei manualmente ( tablename_colname_seq).
Vedi anche alcune discussioni qui , qui e (per SQL generale) qui , tutte con diversi collegamenti correlati.
Nota: Postgresql 10 ha introdotto le identity colonne come un sostituto conforme a SQL per seriale .
Non esiste un manuale formale, perché non esiste uno stile o uno standard unico.
Finché capisci le regole di denominazione degli identificativi puoi usare quello che vuoi.
In pratica, trovo più facile da usare lower_case_underscore_separated_identifiersperché non è necessario per "Double Quote"loro ovunque per conservare case, spazi, ecc.
Se vuoi nominare le tue tabelle e funzioni "@MyAṕṕ! ""betty"" Shard$42" saresti libero di farlo, anche se sarebbe difficile digitare ovunque.
Le cose principali da capire sono:
A meno che non siano racchiusi tra virgolette doppie, gli identificatori sono piegati in minuscolo in maiuscolo, quindi MyTable, MYTABLEe mytablesono tutti la stessa cosa, ma "MYTABLE"e"MyTable" sono diversi;
Salvo virgolette:
Gli identificatori SQL e le parole chiave devono iniziare con una lettera (az, ma anche lettere con segni diacritici e lettere non latine) o un trattino basso (_). I caratteri successivi in un identificatore o parola chiave possono essere lettere, caratteri di sottolineatura, cifre (0-9) o segni di dollaro ($).
Devi citare due parole chiave se desideri utilizzarle come identificatori.
In pratica, consiglio vivamente di non utilizzare parole chiave come identificatori. Almeno evita le parole riservate. Solo perché puoi nominare una tabella "with"non significa che dovresti.
lower_case_underscore_separated_identifiers" ... recentemente, ho sentito questo descritto come "caso di serpente"