Gdzie mogę znaleźć szczegółowy podręcznik na temat konwencji nazewnictwa PostgreSQL? (nazwy tabel a wielkość liter wielbłąda, sekwencje, klucze podstawowe, ograniczenia, indeksy itp.)
193
Gdzie mogę znaleźć szczegółowy podręcznik na temat konwencji nazewnictwa PostgreSQL? (nazwy tabel a wielkość liter wielbłąda, sekwencje, klucze podstawowe, ograniczenia, indeksy itp.)
Odpowiedzi:
Jeśli chodzi o nazwy tabel, wielkość liter itp., Dominującą konwencją jest:
UPPER CASE
lower_case_with_underscores
Na przykład :
To nie jest wyryte w kamieniu, ale nieco o identyfikatorach w dolnej przypadku jest wysoce zalecane, IMO. Postgresql traktuje wielkość liter w identyfikatorze w sposób niewrażliwy, gdy nie jest cytowany (faktycznie składa je do małych liter wewnętrznie) i rozróżnia wielkość liter w przypadku cytowania; wiele osób nie zdaje sobie sprawy z tej osobliwości. Używanie zawsze małych liter jest bezpieczne. W każdym razie dopuszczalne jest użycie
camelCase
lubPascalCase
(lubUPPER_CASE
), o ile jesteś konsekwentny: albo podawaj identyfikatory zawsze, albo nigdy (i obejmuje to tworzenie schematu!).Nie znam wielu innych konwencji ani przewodników po stylu. Klucze zastępcze są zwykle tworzone z sekwencji (zwykle z
serial
makrem), wygodnie byłoby trzymać się tego nazewnictwa dla tych sekwencji, jeśli utworzysz je ręcznie (tablename_colname_seq
).Zobacz także niektóre dyskusje tutaj , tutaj i (dla ogólnego SQL) tutaj , wszystkie z kilkoma powiązanymi linkami.
Uwaga: Postgresql 10 wprowadził
identity
kolumny jako zamiennik szeregowy zgodny z SQL .źródło
Tak naprawdę nie ma formalnej instrukcji, ponieważ nie ma jednego stylu ani standardu.
Tak długo, jak rozumiesz zasady nazewnictwa identyfikatorów , możesz używać tego, co chcesz.
W praktyce uważam, że jest łatwiejszy w użyciu,
lower_case_underscore_separated_identifiers
ponieważ nie jest"Double Quote"
im potrzebne wszędzie, aby zachować obudowę, spacje itp.Jeśli chcesz nazwać swoje tabele i funkcje
"@MyAṕṕ! ""betty"" Shard$42"
, możesz to zrobić, choć pisanie wszędzie byłoby trudne.Najważniejsze rzeczy do zrozumienia to:
Chyba cytowany dwukrotnie, identyfikatory są case-składane do małych liter, tak
MyTable
,MYTABLE
imytable
to wszystko to samo, ale"MYTABLE"
i"MyTable"
są różne;Chyba że podwójnie cytowany:
Musisz podwójnie podać słowa kluczowe, jeśli chcesz ich użyć jako identyfikatorów.
W praktyce zdecydowanie zalecamy, aby nie używać słów kluczowych jako identyfikatorów. Przynajmniej unikaj słów zastrzeżonych. To, że możesz nazwać tabelę
"with"
, nie oznacza, że powinieneś.źródło
lower_case_underscore_separated_identifiers
” ... ostatnio słyszałem, że jest to opisywane jako „przypadek węża”