Apakah ada alasan untuk menggunakan nama tabel yang sangat singkat?

22

Kami menggunakan pengaturan database dari aplikasi vendor yang sangat sulit untuk membaca nama tabel database, dan tidak ada dokumentasi tentang apa yang disimpan di mana. Saya bisa melihat mengapa orang mungkin ingin mengaburkan struktur tabel mereka di aplikasi berpemilik, tetapi salah satu poin penjualan dari aplikasi ini (Perencanaan Sumber Daya Perusahaan) adalah kemampuan penyesuaiannya.

Nama tabel seperti aptrx (Transaksi Hutang Akun) dan apmaster_all (anehnya, ini adalah tabel vendor). Ini adalah basis data yang sangat kompleks, jadi saya bertanya-tanya apakah ada logika untuk konvensi atau apakah itu hanya dikaburkan dengan sengaja atau tidak.

Sejauh pengetahuan saya, panjang nama tabel tidak akan mempengaruhi kinerja secara nyata, benar? Basis datanya sangat kompleks (ratusan tabel) sehingga pengurutan masuk akal, tapi saya tidak bisa membayangkan mengapa AccountsPayableTransactions tidak lebih disukai daripada aptrx ....

Ben Brocka
sumber
8
seseorang belum hancur di belakang kepala cukup keras untuk tahu lebih baik
DForck42
2
* nyengir * itu untuk keamanan pekerjaan, biaya memecat programmer lama dan mempekerjakan yang baru menjadi jauh lebih tinggi jika Anda memiliki nama samar.
Lie Ryan
@Lie_Ryan sepertinya memang begitu, bahwa mereka akan berharap Anda akan menyewa konsultan ...
Ben Brocka
FWIW, jika Anda bekerja pada sistem akuntansi, "aptrx" tidak samar. Sudah jelas. Lebih detail dalam jawaban saya di bawah ini.
Mike Sherrill 'Cat Recall'
kebingungan adalah salah satu alasan
Arnaud Le Blanc

Jawaban:

23

Oracle telah memiliki batas jangka panjang pada nama tabel 30 karakter. Saya menduga ini adalah masalah warisan yang didasarkan pada lingkungan asli 16 bit.
Panjang nama tabel bisa memiliki efek yang sangat kecil pada kinerja karena semua nama harus disimpan dalam kamus data dan juga diuraikan untuk kueri, tetapi saya tidak berpikir Anda bisa mengukur hit.

Efek yang lebih penting dari nama tabel pendek adalah sulit digunakan. Saya juga harus memelihara skema database perusahaan dengan nama pendek. Tidak ada alasan bagus untuk memiliki nama tabel pendek. Kemudahan perawatan truf kebingungan atau kebiasaan lama DOS setiap waktu.

kevinsky
sumber
2
Jika 30 karakter tidak cukup untuk dapat menghasilkan nama-nama unik untuk tabel, Anda memiliki masalah yang jauh lebih serius daripada yang bisa diselesaikan oleh DBMS atau lingkungan pengembangan: Anda memiliki masalah dengan tingkat ekspresif bahasa Anda dan / atau kosa kata.
Erwin Smout
18

Saya merasa ada dua hal yang masih perlu dikatakan atau dielaborasi:

  1. Memberi nama tidak sepele seperti kedengarannya

    Hanya ada dua masalah sulit dalam Ilmu Komputer: cache invalidation dan penamaan hal. Phil Karlton

  2. Sementara nama-nama bermakna singkat selalu buruk, nama panjang tidak selalu baik - otak kita memiliki inbuilt tl; dr ambang batas yang cukup rendah. 30 karakter biasanya cukup tetapi saya lebih suka RDBMS untuk memungkinkan lebih banyak untuk kasus luar biasa ketika tidak (dan seperti dalam bahasa, nama yang lebih panjang lebih berguna untuk hal-hal yang tidak sering kita bicarakan - seperti nama kendala, dan nama yang lebih pendek lebih berguna untuk tabel yang kita query sepanjang waktu)

Saya selalu tergoda untuk menghabiskan terlalu sedikit waktu untuk memilih nama, dan selalu menyesal nanti jika saya lakukan - jarang mengubah nama

Jack Douglas
sumber
2
Saya sangat pilih-pilih tentang nama dan kemampuan terbatas saya saat ini untuk mengubahnya menggangguku hingga akhir. Saya masuk ke UX, jadi nama-nama yang tidak dapat digunakan mungkin sangat mengganggu saya. Ditambah lagi, saya hanya lebih suka camelCase ...
Ben Brocka
7

Kemalasan. Opsi IntelliSense dan pihak ke-3 membuat pengetikan alasan yang sulit benar untuk dibenarkan. Saya lebih suka nama-nama itu memiliki kata-kata yang bermakna dan dapat dibaca.

Aaron Bertrand
sumber
6

Nama tabel seperti aptrx (Transaksi Hutang Akun) dan apmaster_all (anehnya, ini adalah tabel vendor). Ini adalah basis data yang sangat kompleks, jadi saya bertanya-tanya apakah ada logika untuk konvensi atau apakah itu hanya dikaburkan dengan sengaja atau tidak.

Singkatan yang terkenal biasanya lebih disukai daripada mengeja. Ketika singkatan dikenal oleh beberapa orang, tetapi tidak cukup banyak orang, kami berhenti menyebutnya singkatan, dan mulai menyebutnya kode.

Singkatan menghemat ruang pada platform yang memiliki batas ketat, meskipun ini kurang penting sekarang daripada 30 tahun yang lalu. (Sepertinya saya ingat bekerja pada sistem pada 1980-an yang membatasi Anda untuk 6 atau 8 karakter untuk nama tabel.)

Singkatan biasanya membuat nama tabel dan nama kolom lebih mudah dibaca, selama singkatan dilakukan dengan baik. Jika saya bekerja pada kode untuk AP sepanjang hari, saya lebih suka membaca nama kolom seperti "ap_trx.inv_num" daripada "accounts_payable_transactions.invoice_number". (Saya suka garis bawah.) Mengetik nama panjang tidak banyak masalah dengan editor teks yang baik.

Dalam sistem akuntansi, "ap" dan "trx" adalah singkatan yang terkenal. Lainnya termasuk "ar", "gl", dan "gj", untuk piutang dagang, buku besar, dan jurnal umum.

Dalam sistem yang dirancang dengan baik, jika saya menemukan transaksi hutang dalam tabel bernama "aptrx", saya berharap menemukan transaksi piutang di artrx, transaksi buku besar di gltrx, dan sebagainya. Saya menemukan "apmaster_all" sedikit membingungkan, tetapi jika saya juga menemukan "armaster_all", saya akan menganggap bahwa yang pertama memegang semua vendor (sebagai lawan dari vendor yang aktif atau tidak aktif), dan yang kedua juga memegang semua pelanggan.

Di domain masalah lain, Anda menemukan singkatan terkenal lainnya. Dalam menangani, Anda akan menemukan singkatan seperti "addr" untuk alamat, "st" untuk jalan, "usps" untuk Layanan Pos Amerika Serikat, "up" untuk United Parcel Service, "cty" untuk county, "zip" untuk Peningkatan Zona Kode, dan sebagainya.

Saya tidak akan menyebut kebingungan ini. Jika rekening transaksi hutang yang disimpan dalam tabel bernama "cdrs21", saya akan menelepon yang kebingungan. (Meskipun saya pernah bekerja untuk sebuah perusahaan yang menamai semua modul assembler mainframe mereka dengan cara itu. Batas karakter, bukan kebingungan.)

Tetapi basis data yang berguna tumbuh, dan Anda mengalami masalah saat basis data menjadi besar. Saat Anda menambahkan domain masalah ke basis data Anda, Anda mengalami situasi di mana singkatan yang terkenal bertabrakan. Jika Anda berurusan dengan media, maka "ap" juga bisa menyingkat "Associated Press", "pers alternatif", atau "penempatan lebih lanjut". Ketika itu terjadi, saatnya untuk meninggalkan singkatan, atau beralih ke kode. Semakin besar organisasi (dan semakin besar basis data), semakin sering saya menemukan kode.

Mike Sherrill 'Cat Recall'
sumber
4
Bagian dari masalahnya adalah bahwa tabel-tabel ini tidak dikelola oleh akuntan, mereka dikelola oleh seorang analis sistem dan umumnya departemen IT kami. Aptrx sebenarnya adalah salah satu nama paling logis yang saya temukan, salah satu-satunya yang saya sudah ingat . Perhatikan juga bahwa ada beberapa ratus tabel; singkatan dasar seperti "ap" untuk "hutang dagang" sangat mudah dipelajari, secara harfiah 100 suffix setelah "ap" tidak ...
Ben Brocka
4

Hanya berdebat dengan "tuhanku, kacamata mereka tidak melakukan apa pun untuk konvensi penamaan yang mengerikan ini". Tim manajemen data di lingkungan terakhir saya menyatakan alasan untuk menggunakan nama tabel disingkat adalah keterbatasan DB2 (kami memiliki DB2 pada z / os dan SQL Server) sebanyak 18 karakter untuk tabel dan kolom. Saya segera menunjukkan bahwa ini tidak akurat dengan dokumentasi dari situs IBM. Mereka kemudian menyatakan itu adalah masalah COBOL (ya, mereka secara aktif mengembangkan COBOL) jika perlu berbicara dengan database yang kemudian dibantah oleh joki MF. Akhirnya, tanggapan mereka adalah standar publikasi kami.

Kami mengajukan petisi kepada komite standar untuk menambah panjang dari 18 menjadi 32 karakter dan menerima 30 batasan karakter. Itu mengakibatkan tabel berubah dari nama 'SR_M_DLY_ADV_PRD_S' yang tidak berguna menjadi 'IDX_FDSHRCLAS_LIF_RTRN_STATS_X' FML

Jadi, dalam belasan tahun pengalaman saya, nama tabel yang diperpendek tidak memberikan manfaat nyata dan menghasilkan biaya pengembangan dan pemeliharaan yang lebih tinggi karena saya harus selalu merujuk ke kamus data untuk menerjemahkan sampah di layar ke pengidentifikasi yang berarti. Yang dapat dikontraskan dengan entitas bernama logis yang telah saya kerjakan dan sebagian besar dapat dibuat kembali dari memori karena mereka dinamai secara intuitif.

billinkc
sumber
1
Sepertinya nama-nama tersebut berubah dari nama yang sama sekali tidak berguna menjadi nama yang sedikit tidak berguna. Mungkin normalisasi bisa membantu? Jika setiap tabel melakukan lebih sedikit, maka ada lebih sedikit alasan untuk memiliki nama multi-kata yang panjang, jadi lebih sedikit alasan untuk menyingkat.
Lie Ryan
Tidak juga, meja panjang yang menjengkelkan itu tidak bisa berbuat apa-apa jika dicoba. Ini memiliki 4 kolom di dalamnya, 2 di antaranya adalah kunci asing. Ini adalah tabel "statistik pengembalian" kepada siapa pun kecuali mereka yang melindungi kamus data sakral pengetahuan. Itu adalah tabel referensi silang statistik seumur hidup kelas dana kembali saham.
billinkc
Anda baru saja meniup pikiran saya dengan itu; mungkin saya hanya tidak terbiasa dengan domain masalah, tetapi tabelnya tidak segera jelas bagi saya bahkan setelah melihat nama yang tidak disatukan. Beberapa pertanyaan dalam pikiran saya (hanya daftar hal-hal yang tidak segera jelas bagi saya, Anda tidak perlu menjawabnya jika Anda tidak mau): Apakah ini tabel entitas atau tabel hubungan? Apakah "indeks" ada hubungannya dengan "indeks basis data"? Dengan "referensi silang" dan "statistik pengembalian", yang sepertinya mengisyaratkan bahwa ini adalah tabel agregat terdenormalisasi (yang dapat berguna saat menghitungnya mahal)?
Lie Ryan
Industri jasa keuangan, tabel entitas, indeks yang menilai investasi (kelas reksa dana saham dalam kasus ini) memiliki statistik tentang sesuatu yang tidak dapat saya ingat ...
billinkc
3

Itu kebiasaan (saya setuju dengan Kevinsky). Ini adalah reaksi pada beberapa masalah lama (mungkin ada) untuk pembatasan (panjang nama, ruang antara kata-kata nama kompleks, multibahasa dll) dari sistem operasi (DOS, Windows, misalnya) dan beberapa perangkat lunak yang tidak menangani nama-nama tersebut. Orang yang berpengalaman mengatakan: "Lakukan (gunakan pendek dan dipisahkan dengan nama garis bawah) dan semua akan baik-baik saja."

garik
sumber
2

Saya suka menggunakan penamaan deskriptif untuk alasan yang disebutkan di atas oleh poster.

Namun ada juga manfaat lain. Misalnya, dengan penamaan deskriptif, Anda dapat menggunakan nama bersarang. Katakanlah Anda memiliki tabel yang disebut Karyawan. Jika Anda memiliki hubungan dengan tabel lain, itu bisa disebut EmployeeAddress. Atau Departemen Karyawan. Dengan penamaan yang samar dan tidak tepat ini hampir tidak mungkin.

Thomas Stringer
sumber
0

Tergantung pada seberapa kompleks definisi yang mendasari masing-masing kolom. Saya pikir orang-orang menjadi malas dengan manajemen metadata ketika mereka melihat nama-nama kolom yang sangat deskriptif ini, dan mereka bahkan deskripsi yang tidak lengkap. Anda mungkin juga bertanya mengapa menyingkat sesuatu.

Thx1160
sumber
Karena tabel tidak menyediakan metadata non-otomatis, saya tidak yakin itu argumen yang valid ...
Ben Brocka