2014-01-24

nama pendek vs nama panjang

mau kasi argumen apapun.. tetap saja argumen pake nama pendek lebih diterima. Dalam kasus ini, saya membahas tentang penamaan field di table! bila anda membaca pada tulisan saya sebelumnya, saya terpaksa mengulangnya disini karena ada masalah intern.

Penamaan yang saya bahas disini adalah apakah anda akan memakai nama field id atau user_id? tentu anda akan memakai id dibandingkan user_id. Padahal memakai user_id akan menunjukkan bahwa id ini milik table user. Kemudian bagaimana dengan id dari table lain? seperti id milik table role? apakah id_role ataukah role?

Disinilah perdebatan dan kebingungan dapat terjadi. Di lain pihak menuliskan id_role yang nanti di join dengan id dari id milik role akan lebih mudah! Di lain pihak bila memakai format yang kupergunakan akan lebih enak! yaitu memakai penamaan user_role dimana role adalah table role. Dan seperti yang di angkat di atas, penamaan pendek akan selalu menang walaupun argumen panjang yang akan ku tulis.

Penamaan Panjang menyusahkan


untuk menulis id lebih mudah ketimbangh user_id. Namun akan bermanfaat bila anda memasuki query yang memakai 3 table sekaligus. Dan sayangnya bila anda tidak memanfaatkan join dalam query anda. Secara normal saya melihat banyak kelebihan dari join, tetapi kalau sudah joinnya banyak dan kamu harus mencari cara agar kamu mampu memahami alur (ini susahnya), barulah dengan format nama pendek akan jadi bumerang.
Namun kembali lagi, bila memakai nama panjang biasanya kamu harus memastikan nama alias buat tablenya contoh user menjadi u, user_detail menjadi ud! Namun kembali kepada coding query yang bisa membuat kamu pusing itu akan tetap tidak mudah karena kamu harus menghapal panjang.

MENGHAPAL ADALAH MUSUH

Memulai alasan memakai nama panjang adalah untuk mengurangi hapalan. Dan untuk menghindari alias! Namun kita tak bisa lepas dari alias karena bila kita ingin hasil field yang keluar harus diberi alias! bila memakai nama panjang akan repot karena harus menulis nama field (table dan nama) baru menulis aliasnya. Tapi dari segi menghapal kita jadi lebih ringan karena kita tahu bila ada masalah, table mana yang bermasalah dan cepat memperbaiki query atau tablenya.

Tapi memberi nama table pada field tidak jadi solusi, itu sebabnya beberapa field memakai nama singkatan seperti u_id! sebenarnya akan lebih cepat kalau kita memberi nama id saja dan saat mengetik u.id => nama field tetap id. Tapi  ada 1 batu sandungan yaitu bila querynya ternyata menambahkan table lainnya. Sandungan bila memakai nama table yang disingkat adalah kadang ada table yang berawalan sama dan di singkat sama juga! Kita tak bisa menuliskan u1, u2 dan u dengan angka buat singkatnya. Itu tidak akan membantu kita menghapal tablenya.

Namun kita juga harus membatasi bagaimana cara melakukan penyingkatan, setidaknya itulah yang layak dilakukan untuk memakai nama panjang untuk field.

MENULIS CEPAT

Seperti penjelasan atas, karena namanya adalah user_id, kita lebih lambat mengetik user_id daripada id. Apalagi bila nanti harus berhubungan ama coding lain seperti coding menarik array atau objeknya. Tentu kita akan dominan memilih menulis
$ar['id'] ketimbang $ar['user_id'];

JOIN

Pada penulisan query dengan join inilah muncul kesulitan. Karena pada join akan lebih mudah bila nama yang akan di join sama misal
user.id = user_detail.id
daripada
user_id = userdetail_id

yang pertama lebih mudah karena cukup menulis
INNER JOIN tabel2 as t2
ON PK=t2.FK
;

Semua ini memang berhubungan dengan cepat menulis, dan kemudahan mengingat.

AKHIR KATA

Saya dominan tetap memakai penulisan panjang. Karena query yang saya hadapi bukanlah query yang diketik pendek. Terakhir saya mengetik sampai habis 15 baris! Ini perhitungan baris atas dasar setiap query where (tidak pake join) di hitung 1! dan lagi ada where lain based atas statusnya yang harus 3 tidak boleh yang lain.

Tetapi saya juga harus sportif menerima table lain memanfaatkan nama pendek! Tetapi ada satu keheranan?!? apakah sebenarnya dalam metode nama pendek, untuk yang bersifat id (kunci) namanya malah memakai nama panjang seperti

  • id_user
  • id_category
  • id_dll ???

Tidak ada komentar: