Standar apa yang harus saya ikuti saat memberi nama tabel dan tampilan?


20

Standar apa yang harus saya ikuti saat memberi nama tabel dan tampilan? Sebagai contoh, apakah itu ide yang baik untuk meletakkan sesuatu seperti tbl_ di awal nama tabel? Haruskah saya menetapkan tabel kode / pencarian dengan cara seperti ct_, lut_, atau codes_? Apakah ada yang harus / tidak boleh dilakukan?

Saya menggunakan MS SQL Server dan memiliki banyak database dengan banyak tabel sehingga akan menyenangkan untuk memiliki sesuatu yang dapat kita gunakan sebagai standar dengan beberapa pendukung yang rasional.

Jawaban:


29

OK, pertama TIDAK PERNAH menaruh tbl di depan nama tabel. Ini meja, kita sudah sekarang. Itu disebut Notasi Hongaria, dan orang-orang berhenti melakukannya 5+ tahun yang lalu.

Panggil saja objek berdasarkan apa itu. Jika sebuah tabel berisi data karyawan, sebut saja "Karyawan". Jika menyimpan informasi tentang komputer, sebut saja "Komputer". Jika peta komputer untuk karyawan menyebutnya "EmployeeComputer" atau "ComputerEmployee" (secara pribadi saya suka "EmployeeComputer" lebih baik).

Tidak ada konvensi penamaan yang benar untuk digunakan (selain untuk tidak menggunakan Notasi Hongaria). Selama nama objek masuk akal bahwa itu yang penting.


11
Selain itu, jangan letakkan nama tabel sebagai kata benda jamak, seperti yang saya lihat contoh Karyawan, Cumputer .. Kita semua tahu tabel seharusnya mendapatkan banyak baris, bukan satu ..
Marian

1
Mengapa Anda membuat tampilan tabel? Semua tampilan adalah, adalah pernyataan pilih yang disimpan. Data tidak terwujud di balik tampilan kecuali Anda menggunakan tampilan yang diindeks. Saya hampir tidak pernah menggunakan pandangan, tidak pernah. Tentu saja tidak ada manfaat kinerja untuk melakukannya.
mrdenny

2
Kami menggunakan tampilan ketika kami ingin melakukan sesuatu seperti bergabung dengan beberapa tabel atau menerjemahkan nilai kode ke nilai yang dapat dibaca manusia. Situasi kedua adalah yang mana Anda akan berakhir dengan nama simular.
Beth Whitezel

2
Jawaban Pak Denny dan kontributor berikut didukung oleh ini: dba4life.blogspot.com/2007/11/…

1
@Marian: Saya menggunakan bentuk jamak karena mereka membuat permintaan membaca lebih alami dan menyelesaikan tabrakan dengan kata kunci. Banyak sistem saya telah bekerja dengan memiliki entitas pesanan. Menggunakan bentuk jamak membuat nama tabel orderstidak orderdan menghindari harus mengutip nama tabel setiap kali itu adalah pengguna. Ini juga berlaku untuk groupdan kata kunci lainnya. Untungnya, beberapa kata kunci bertabrakan dengan entitas yang sama.
BillThor

13

Kami menggunakan skema (menganggapnya sebagai ruang nama dalam SQL mungkin) untuk izin dan pengelompokan. Jadi alih-alih "tbl" dll yang kita miliki

  • Data
  • Data. Sejarah Sejarah
  • Data.Stuff

Tidak ada kode yang masuk ke skema Data. Tidak ada tabel yang hidup di luar skema Data. Ini tentu saja dapat diperpanjang untuk memiliki skema pencarian atau pementasan jika Anda mau.

Untuk tampilan yang kami gunakan, vwtetapi ini untuk membedakannya dari tabel di SQL Server 2000 dan ini agak warisan sekarang


3
+1 untuk merekomendasikan skema. Ini akan berguna sambil mempertahankan db besar dengan 100-an tabel. Kami menggunakan skema untuk pengelompokan fungsional juga. Seperti yang dilakukan dalam AdventureWorks db
CoderHawk

5

Secara pribadi saya penggemar berat Fanö Bedingung , yang berarti di sini bahwa tidak nama diperbolehkan menjadi awal dari nama lain yang valid.

Dan kedua jarak Hamming antara dua nama lebih baik dari satu huruf yang berbeda.

Ya itu adalah aturan dari zaman praduga, tetapi mereka membuat hidup lebih mudah.

Dan nama ketiga harus bisa diucapkan, atau Anda akan menjadi marah, ketika pengenalan suara menjadi benar.


2
Ketika pengenalan suara menjadi kenyataan, saya akan tetap marah. :-)
Beth Whitezel

Hanya jika Anda melakukan dukungan telethon
bernd_k

1
Ketika pengenalan suara muncul, saya akan menjadi sopir truk. Itu atau pertapa gila.
mrdenny

Bisakah Anda jelaskan lebih detail (mungkin dengan contoh) apa itu "Fano Bedingung"?
Nick Chammas

1
@NickChammas Saya pikir dalam bahasa Inggris kita menyebutnya pengkodean Shannon-Fano ini .
Iain Samuel McLean Penatua

2

Saya tidak tahu bahwa benar-benar ada konvensi penamaan "terbaik" di luar sana, karena konvensi itu bermuara pada preferensi pribadi dan kemudahan pengembangan. Saran saya adalah memilih konvensi penamaan dan mematuhinya. Jika Anda ingin memisahkan kata-kata dengan garis bawah, lakukan di semua objek basis data Anda. Jika Anda ingin menggunakan camelCase, lakukan di semua objek basis data Anda.

Di toko saya, kami mematuhi aturan berikut:

Kami memisahkan kata-kata dengan garis bawah dan menggunakan semua huruf kecil.
Nama tabel kami menjelaskan apa itu: dbo.person, dbo.invoice.
Nama tabel banyak-ke-banyak kami juga menggambarkan siapa mereka (dengan penambahan mm untuk menunjukkan hubungan banyak ke banyak yang dipetakan: dbo.person_mm_address. Prosedur tersimpan yang ditentukan pengguna kami menjelaskan objek dan tindakan yang dilakukan: usp_person_select , usp_address_select_by_city Pandangan dan fungsi kami mengikuti aturan yang sama dengan prosedur tersimpan.indeks kami meliputi tabel, kolom kunci (secara berurutan), dan indikasi dari clustered / non-clustered: ix_person_last_name_first_name_nc

Hanya karena ini yang kami gunakan di toko saya, itu tidak berarti aturan ini tepat untuk Anda. Pilih sesuatu yang Anda dan tim pengembangan Anda sepakati berguna dan mudah untuk dikembangkan, dan membangun budaya mengetahui dan menggunakan konvensi penamaan apa pun yang Anda putuskan. Dalam kasus kami, ini termasuk tinjauan kode untuk objek apa pun yang dibuat dalam database. Seiring waktu, kombinasi dari konvensi penamaan yang terdokumentasi dan peninjauan kode rekan telah menyebabkan semakin sedikit penyimpangan dari konvensi.

Saya harap "tidak dijawab" ini membantu.


2

Saya puas dengan ini sejak tahun lalu

  • nama tabel: topi kecil dan garis bawah, tunggal {pelanggan, produk}
  • nama tabel untuk banyak ke banyak hubungan: tablename1_tablename2: {customer_product}
  • tampilan: caps kecil ditambahkan v sampai akhir {customerv, productv, product_groupv}
  • penyimpanan tersimpan: nama tabel dan fungsi {customer_select, customer_insert, customer_delete, customer_update}

jika Anda memiliki paket hosting bersama yang murah, Anda harus menggunakan singkatan proyek di depan semua objek Anda, seperti misalnya, situs administrator database, da_users, da_questions


Mengapa product_groupvdan tidak product_group_vuntuk tampilan (jika Anda bersikeras pada perbedaan tampilan dan tabel)?
ypercubeᵀᴹ

@ ypercube karena saya terlalu malas untuk mengetik satu garis bawah ekstra dan saya membuat kesalahan mengetik dengan mudah. Saya membaca kata-kata lebih mudah ketika saya menggunakan garis bawah dan saya menggunakan v untuk memisahkan tampilan dari tabel, dan v bukan kata jadi saya tidak menggunakan garis bawah .. Ini terlihat tidak konsisten, ya, tetapi saya menemukan format ini praktis.
Uğur Gümüşhan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.