Konvensi Penamaan Standar Database

  • Home
  • Konvensi Penamaan Standar Database

Ketika berangkat dari project satu ke project lain atau bahkan ketika pindah perusahaan, terkadang kita harus belajar kembali cara penamaan dan design database. Ini disebabkan karena database bagi sebagian developer hanya sebuah tempat untuk menyimpan data hingga pekerjaan utama(coding) selesai. Sehingga dari sebagian banyak developer dengan ‘strong SQL skill’ hanya sedikit yang mampu menormalisasi database.

Jika kita sudah memiliki database, ada baiknya kita menggunakan standar yang sudah ada pada database tersebut, sambil tetap memperhatikan konsistensinya. Namun jika kita dalam tahap membuat database baru, saya harap artikel ini bisa membantu.

Aturan Umum

  • Penggunaan lowercase akan membantu mempercepat pengetikan, design dan menghindari kesalahan ambiguitas SQL case-insensitive.
  • Nomor bukanlah nama. Saat penamaan sangatlah penting hanya menggunakan Alpha English alphabets
  • Nama harus merupakan deskripsi elemen. Cukup jelas dan tidak lebih dari 64 karakter.

Nama Database

  • Nama bisa menggunakan Singular ataupun Plural. Tetapi karena database mewakili satu basis data, maka lebih baik menggunakan nama Singular.
  • Hindari penggunaan prefix pada nama database

Nama Table

CamelCase Vs snake_case

Mari kita bahas dari yang paling umum. Kita pasti pernah menemukan nama table MstUser atau mst_user.  Mana yang sebaiknya kita pakai, CamelCase atau snake_case? Dalam hal ini saya menyarankan untuk menggunakan snake_case. Untuk mempermudah pemahaman kita mari kita buat table dengan nama ‘underscore‘ dengan standar camelcase seharusnya menjadi Underscore. Lalu bagaimana jika kita memerlukan table dengan nama ‘under score‘ dimana kita tahu ‘underscore‘ dan ‘under score‘ memiliki arti yang berbeda. Jadi jika kita menggunakan CamelCase akan menjadi Underscore dan UnderScore. hal ini akan menimbulkan error ambigu karena sql merupakan Case-Insensitive. Penggunaan snake_case seperti pada underscore_name dan under_score_name akan membantu mengurangi ambigu. Tantangan lain yang bisa dihindari jika menggunakan CamelCase adalah ketika menggunakan Akronim seperti IdKaryawan atau IDKaryawan. Jika menggunakan snake_case tentu tidak akan ada perbedaan asumsi antar developer.

Plural Vs Singular

Bagian ini terkadang luput dari perhatian kita. Karena tidak ada standar pasti yang mana yang harus digunakan plural(customers) atau singular(customer). Tanpa perlu membahas teori mana yang benar, saya ingin mengingatkan  bahwa Sql memiliki kata spesial yang disebut ‘reversed word’. Ketika  kita menamai table dengan nama user maka akan terjadi bentrok dengan ‘reversed word’. Jadi penamaan plural seperti users akan menghindari bentrok penamaan dengan ‘reversed word’. Namun tentu saja ini tidak mutlak, jika ingin menggunakan penamaan singular maka cara penamaan mst_user tentu akan lebih masuk akal.

Prefix dan Suffix

  • Seringkali table memiliki nama project atau module didalamnya. Penggunaan prefix adalah hal yang lumrah untuk menginformasikan kita cara menangani data didalamnya. Seperti pada prefix mst_trx_, dan tmp_.
  • Penggunaan suffix _hdr dan _dtl juga dapat dilakukan untuk menginformasikan kita ketika melihat table _hdr bahwa akan ada data penting lainnya yang mungkin dibutuhkan disimpan dalam table _dtl. Hal ini juga memudahkan kita menentukan suatu table berdiri sendiri ketika tidak memiliki suffix

Nama Kolom

Hindari tambahan nama table ke nama kolom

Yang saya maksud disini adalah kolom yang menggunakan nama tablenya sendiri. Contoh yang salah adalah seperti berikut;

task (taskid, taskname, title)

sebaliknya  kita dapat menggunakan table name untuk nama kolom di table yang berbeda untuk menyatakan relasi. Gunakan nama kolom seperti berikut;

task (id, userid, title);

note (id, taskid, userid, note);

user (id, name);

Hindari multitafsir

Penggunaan nama yang spesifik akan membantu menghindari multitafsir.  Sebagai contoh penamaan suhu dengan data 32 membuat multitafsir karena 32 adalah suhu ruang yang hangat dalam Celcius namun dingin dalam Fahrenheit, sehingga lebih tepat jika kita beri nama celsius. Berikut adalah nama yang disarankan;

mysql> select * from cek_suhu;

idnamaamountunitdemam
1sunu dioh39ctrue
2irwan hasan37cfalse
3achmad wahyu98ffalse

Kesimpulan

Standar penamaan sangat penting karena membantu koding dalam kecepatan, konsistensi, dan predictable. Sehingga nama yang tidak predictable dapat dicurigai sebagai bug. Bagaimanapun pemilihan standar penamaan dapat memudahkan kita membaca kode lebih baik. Jika dikerjakan dengan baik, akan memungkinkan kita melihat error dalam satu baris kode. 

Buatlah nama table dan database simple namun mudah dimengerti oleh database desiner maupun programer. Nama bukanlah sesuatu yang harus menimbulkan kebingungan. Dan terakhir, nama mudah digunakan untuk bahasa pemrograman atau framework yang diimplementasikan.

Penulis : Tetra Sunu Dioh

Leave A Comment

6 − three =