Di mana saya dapat menemukan manual terperinci tentang konvensi penamaan PostgreSQL? (nama tabel vs. peti unta, urutan, kunci primer, batasan, indeks, dll ...)
193
Di mana saya dapat menemukan manual terperinci tentang konvensi penamaan PostgreSQL? (nama tabel vs. peti unta, urutan, kunci primer, batasan, indeks, dll ...)
Jawaban:
Mengenai nama tabel, kasus, dll, konvensi yang lazim adalah:
UPPER CASE
lower_case_with_underscores
Sebagai contoh :
Ini tidak ditulis dalam batu, tetapi sedikit tentang pengidentifikasi dalam huruf kecil sangat dianjurkan, IMO. Postgresql memperlakukan case identifiers dengan tidak sensitif ketika tidak dikutip (sebenarnya melipatnya menjadi huruf kecil secara internal), dan case sensitif ketika dikutip; banyak orang tidak menyadari keanehan ini. Menggunakan selalu huruf kecil Anda aman. Bagaimanapun, itu dapat diterima untuk menggunakan
camelCase
atauPascalCase
(atauUPPER_CASE
), selama Anda konsisten: baik pengidentifikasi kutipan selalu atau tidak pernah (dan ini termasuk pembuatan skema!).Saya tidak mengetahui banyak konvensi atau panduan gaya lainnya. Kunci pengganti biasanya dibuat dari urutan (biasanya dengan
serial
makro), akan lebih mudah untuk tetap menggunakan penamaan itu untuk urutan tersebut jika Anda membuatnya dengan tangan (tablename_colname_seq
).Lihat juga beberapa diskusi di sini , di sini dan (untuk SQL umum) di sini , semua dengan beberapa tautan terkait.
Catatan: Postgresql 10 memperkenalkan
identity
kolom sebagai pengganti SQL untuk serial .sumber
Sebenarnya tidak ada manual formal, karena tidak ada gaya atau standar tunggal.
Selama Anda memahami aturan penamaan pengenal Anda dapat menggunakan apa pun yang Anda suka.
Dalam praktiknya, saya merasa lebih mudah digunakan
lower_case_underscore_separated_identifiers
karena tidak perlu bagi"Double Quote"
mereka di mana-mana untuk melindungi kasing, ruang, dll.Jika Anda ingin memberi nama tabel dan fungsi
"@MyAṕṕ! ""betty"" Shard$42"
Anda, Anda akan bebas untuk melakukan itu, meskipun akan sulit untuk mengetik di mana-mana.Hal utama yang harus dipahami adalah:
Kecuali dikutip ganda, pengidentifikasi adalah case-dilipat untuk menurunkan kasus, sehingga
MyTable
,MYTABLE
danmytable
semua hal yang sama, namun"MYTABLE"
dan"MyTable"
berbeda;Kecuali dikutip ganda:
Anda harus mengutip kata kunci ganda jika Anda ingin menggunakannya sebagai pengidentifikasi.
Dalam praktiknya saya sangat menyarankan agar Anda tidak menggunakan kata kunci sebagai pengidentifikasi. Setidaknya hindari kata-kata yang dipesan. Hanya karena Anda dapat memberi nama tabel
"with"
tidak berarti Anda harus.sumber
lower_case_underscore_separated_identifiers
" ... baru-baru ini, saya mendengar ini digambarkan sebagai "kasus ular"