Де я можу знайти докладний посібник про умови іменування PostgreSQL? (назви таблиць порівняно з регістром верблюда, послідовності, первинні ключі, обмеження, покажчики тощо)
Де я можу знайти докладний посібник про умови іменування PostgreSQL? (назви таблиць порівняно з регістром верблюда, послідовності, первинні ключі, обмеження, покажчики тощо)
Відповіді:
Що стосується назв таблиць, регістру тощо, поширеною умовою є:
UPPER CASE
lower_case_with_underscores
UPDATE my_table SET name = 5;
Це написано не каменем, але біт про ідентифікатори в нижньому регістрі настійно рекомендується, IMO. Postgresql ставиться до випадку ідентифікаторів безчутливо, коли його не цитують (це фактично згортає їх на малі регістри внутрішньо), а під час цитування - чутливо; багато людей не знають про цю ідіосинкразію. Використовуючи завжди малі регістри, ви в безпеці. У будь-якому випадку прийнятно використовувати camelCase
або PascalCase
(або UPPER_CASE
), якщо ви послідовні: або ідентифікатори цитуйте завжди, або ніколи (і це включає створення схеми!).
Мені не відомі ще багато конвенцій чи посібників зі стилів. Сурогатні ключі зазвичай складаються з послідовності (зазвичай з serial
макросом), було б зручно дотримуватися цього іменування для цих послідовностей, якщо ви створюєте їх вручну ( tablename_colname_seq
).
Дивіться також деякі обговорення тут , тут і (для загального SQL) тут , все з кількома пов'язаними посиланнями.
Примітка. Postgresql 10 представив identity
стовпці як сумісну SQL для послідовного використання .
Насправді не існує офіційного посібника, тому що немає єдиного стилю чи стандарту.
Поки ви розумієте правила іменування ідентифікаторів, ви можете використовувати все, що завгодно.
На практиці мені зручніше користуватися, lower_case_underscore_separated_identifiers
оскільки їм не потрібно "Double Quote"
всюди зберігати регістр, пробіли тощо.
Якби ви хотіли назвати свої таблиці та функції, "@MyAṕṕ! ""betty"" Shard$42"
ви могли б це зробити, хоча вводити всюди було б боляче.
Основні речі, які слід розуміти:
Якщо двічі не вказано, ідентифікатори випадок складеного ' до нижнього регістра, тому MyTable
, MYTABLE
і mytable
все те ж саме, але "MYTABLE"
і "MyTable"
різні;
За винятком подвійних цитат:
Ідентифікатори SQL та ключові слова повинні починатися з літери (az, але також букв із діакритичними позначками та не латинськими літерами) або підкреслення (_). Наступними символами в ідентифікаторі чи ключовому слові можуть бути літери, підкреслення, цифри (0-9) або знаки долара ($).
Якщо ви хочете використовувати їх як ідентифікатори, ви повинні подвоїти ключові слова.
На практиці я настійно рекомендую не використовувати ключові слова як ідентифікатори. Принаймні уникайте зарезервованих слів. Тільки тому, що ви можете назвати таблицю "with"
, не означає, що слід.
lower_case_underscore_separated_identifiers
" ... нещодавно я почув це, як описано як "зміїний випадок"