Dalam kasus Oracle, Anda akan ingin tidak nama kolom 'id' atau 'name' atau apa pun yang generik.
Masalahnya adalah bahwa secara default di versi yang lebih lama , Oracle akan mencoba untuk bergabung dengan tabel berdasarkan nama kolom yang sama, jadi jika saya telah menamai semuanya dengan baik, maka saya juga akhirnya menentukan klausa gabungan default di antara tabel saya.
Tetapi bahkan jika Anda tidak menggunakan Oracle, dengan tidak memilih nama yang muncul dalam beberapa tabel, itu juga berarti bahwa Anda tidak harus melalui masalah peng aliasing setiap kali Anda harus melakukan pemilihan di dua tabel:
SELECT
instrument.name as instrument_name,
instrument.abbr as instrument_abbr,
source.name as source_name,
source.abbr as source_abbr,
...
FROM ...
Jadi, jika pilihan multi-tabel adalah norma, nama kolom yang lebih lama menghemat Anda mengetik. (jika Anda hanya menggunakan satu tabel pada satu waktu ... apakah Anda benar-benar membutuhkan database relasional?)
... dan penghematan pengetikan membawa kita ke masalah lain di Oracle - setidaknya dalam 8i (versi saat ini ketika saya mengambil kursus Oracle SQL Tuning dan Pemodelan Data) caching rencana eksekusi hanya didasarkan pada begitu banyak karakter pertama dari kueri (tidak dapat mengingat nilai pastinya ... 1024?), jadi jika Anda memiliki kueri yang hanya bervariasi menurut sesuatu di akhir klausa di mana, dan daftar kolom yang Anda ekstraksi sangat panjang, Anda dapat mengalami hit kinerja karena tidak dapat men-cache rencana eksekusi dengan benar.
Oracle memiliki panduan dalam memilih apa yang mereka klaim adalah nama tabel dan kolom yang baik, yang pada dasarnya adalah panduan untuk menghapus huruf sampai sekitar 5-8 karakter, tetapi saya tidak pernah terlalu memperhatikannya.
...
Yang terjadi selain itu:
- kolom selalu tunggal (tabel selalu jamak)
- semua nama huruf kecil, kalau-kalau ada sesuatu yang sensitif huruf
- sebagai akibat dari hal di atas, gunakan garis bawah alih-alih kasing unta.
pembaruan : bagi mereka yang tidak terbiasa dengan perilaku bergabung Oracle, lihat contoh terakhir tentang Menguasai Oracle SQL: Gabung Ketentuan , di mana disebutkan:
Apa yang terjadi? Alasannya terletak pada fakta bahwa, selain dari supplier_id, kedua tabel ini memiliki pasangan kolom lain dengan nama yang sama. Kolom itu adalah nama. Jadi, ketika Anda meminta gabungan alami antara pemasok dan tabel bagian, bergabung terjadi tidak hanya dengan menyamakan kolom supplier_id dari dua tabel, tetapi kolom nama dari dua tabel disamakan juga. Karena, tidak ada nama pemasok yang sama dengan nama bagian dari pemasok yang sama, tidak ada baris yang dikembalikan oleh permintaan.
Di bawah 'old join syntax' (8i dan sebelumnya), 'NATURAL JOIN' adalah perilaku join default, dan saya yakin itu masih terjadi jika Anda tidak menentukan kondisi join. Setelah 'NATURAL JOIN' adalah opsi resmi di 9i, rekomendasi umum adalah jangan menggunakannya , karena penamaan kolom yang buruk dapat mengacaukan Anda, yang mana saya menganjurkan nama kolom yang bagus.