Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara/Metode/Logika/Teknik Pembuatan Struktur Table Database

Contoh pembuatan struktur table yang umum dilakukan adalah seperti ini:
Master_Barang
Field Name Data Type PrimaryKey
Kode_Barang Varchar(10) Yes
Nama_Barang Varchar(50) No

Transaksi_Beli_Detail
Field Name Data Type PrimaryKey
Kode_Beli Varchar(20) Yes
Kode_Barang Varchar(10) Yes
Qty Float No

Dan biasanya jika anda ingin menampikan Report Detail Pembelian menggunakan query seperti ini :
"SELECT A.*, B.Nama_Barang FROM Transaksi_Beli_Detail AS A JOIN Master_Barang AS B ON A.Kode_Barang=B.Kode_Barang"

Memang tidak ada yang salah dengan struktur seperti itu dan ini sudah mengikuti aturan NORMALISASI. Tapi baru baru ini saya menemukan konsep baru yaitu dengan tujuan agar performance table/database dalam melakukan proses SELECT data menjadi lebih cepat dan stabil. Caranya adalah dengan menambahkan ID pada setiap table, apa itu ID ?
ID dapat dikatakan No_Urut untuk setiap record/row pada table, anda bisa setting ID ini sebagai Auto-Increment maupun manual. jangan lupa ID ini harus anda setting menjadi PrimaryKey. Sehingga struktur tablenya menjadi sepeti ini :
Master_Barang
Field Name Data Type PrimaryKey
ID_Barang BigInt Yes
Kode_Barang Varchar(10) Yes
Nama_Barang Varchar(50) No

Transaksi_Beli_Detail
Field Name Data Type PrimaryKey
ID_Beli BigInt Yes
ID_Barang BigInt Yes
Qty Float No

Dengan seperti ini maka query Report Detail Pembelian-nya berubah menjadi :
"SELECT A.*, B.Nama_Barang FROM Transaksi_Beli_Detail AS A JOIN Master_Barang AS B ON A.ID_Barang=B.ID_Barang"

Lalu apa bedanya? cuma memindahkan link field/column nya saja? nah, perbedaannya adalah performa/kecepatannya karena JOIN dengan antar data numeric lebih cepat dari pada sorted character maupun unsorted character. Lihatlah contoh data berikut ini :
Transaksi_Beli_Detail
ID_Beli ID_Barang QTY
1 1 100
1350
21500
3449

Tetapi jika menggunakan model lama maka datanya akan seperti ini :
Transaksi_Beli_Detail
Kode_Trans ID_Barang QTY
B120102-001 BJU-XL001 100
B120102-001 KRU-M010 50
B120102-002 BJU-2L015 500
B120102-003 CLP-L048 49

Nah disini kita bisa lihat, semakin simple data yang akan di JOIN maka akan semakin mudah dan cepat sql server engine dalam mem-proses-nya. Intinya perbedaan dari field ID dan KODE adalah :
1. ID hanya kita gunakan untuk proses JOIN dan proses pemrogramman
2. KODE hanya digunakan untuk simbolitas (untuk user)

Memang jika yang belum terbiasa akan sedikit kaku/aneh, ini bukanlah sebuah keharusan maupun tehnik yang 100% benar, masing masing orang mempunyai gaya dan ciri khas dalam bekerja, semoga ilmu kita dapat lebih berambah luas lagi dengan saling berbagi. Terimakasih

Tags:
cara select data, contoh inner join di sql, perbedaan left outer join dan inner join biasa, cara membuat table yang baik, normalisasi pada table,cara agar loading select data cepat

Posting Komentar untuk "Cara/Metode/Logika/Teknik Pembuatan Struktur Table Database"