Де я можу знайти докладний посібник про умови іменування PostgreSQL? (назви таблиць порівняно з регістром верблюда, послідовності, первинні ключі, обмеження, покажчики тощо)
Де я можу знайти докладний посібник про умови іменування PostgreSQL? (назви таблиць порівняно з регістром верблюда, послідовності, первинні ключі, обмеження, покажчики тощо)
Відповіді:
Що стосується назв таблиць, регістру тощо, поширеною умовою є:
UPPER CASElower_case_with_underscoresUPDATE 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" ... нещодавно я почув це, як описано як "зміїний випадок"