2013-02-03

CRUD Part 5 Pengalaman penting ?


pada part 2 saya menjelaskan tentang membaca data. Dalam hal ini saya membaca data dengan cara yang merepotkan yaitu memanggil table utama (anggap table item), lalu table lain yang berhubungan seperti table item_price, item_picture dan lain-lain di panggil menggunakan fungsi. Disini saya menuliskan cara boros dimana kita menulis query pendek tetapi tidak memasukkan foreign keynya.

Ternyata kemarin saya mendapatkan masalah akibat ada kesalahan query. Dan cara saya yang terbilang boros itu sangat membantu. Untuk sederhananya saya akan ceritakan kronologinya.

Saya melanjutkan aplikasi buatan orang, dimana didalamnya terdapat table item, ternyata table ini berhubungan ke table item_image, item_color dan seo. Sebenarnya dari segi penulisan script anda akan menemukan query yang panjang seperti
select item.* from
item, item_pic, item_color, seo
where
{bla-bla}
ternyata ada kesalahan data, dimana ada data yang hilang disalah satu table. Akibatnya fatal!! data tidak tertarik dan tampilannya KOSONG! Sebagai programer, saya melacak sumbernya!! setelah berkeliling barulah menemukan sumbernya..

Penulisan di atas seperti yang ditulis di part 2 memang benar dan layak. Tetapi akan bermasalah apabila kamu mendapatkan datanya kurang. Ujungnya malah ngak muncul!! apalagi sesuai yang pernah ditulis di artikel sebelumnya, kita memiliki indikasi field bertambah (bukan jumlah data), dari sebelumnya 6 malah jadi 15!!

Belum lagi mengaitkan kepada table lain yang berujung pada makin kompleksnya data dan tampilan! Tentu saja data yang bermasalah tidak boleh muncul, tetapi bagaimana kalau data yang bermasalah itu memang benar!! Namun karena ada table yang tidak ada datanya, jadi malah ngak muncul.

Hal yang paling sulit diterima dalam kasus ini adalah data harus muncul walaupun ada kesalahan query. Dari sini kita sebenarnya mengetahui bahwa data yang kita tarik memang ada yang cacat. Namun tentang cacat dan memperbaiki akan dibahas terakhir.

normalnya data biasa dilihat dari table yang paling atas yang di akses. Dalam kasus ini table item! table lainnya seperti item_price, item_color dan lain-lain memang diperlukan!! Tetapi bila tidak ada, maka harusnya tetap muncul.

Dari sinilah kita memakai konsep yang tadi kujelaskan! Mencari berdasarkan table utama (item). Lalu tambahannya memakai fungsi untuk memanggilnya?!? cara ini tergolong boros, namun sangat bermanfaat apabila data yang digunakan tidak berada di 1 table.
*ingat pembicaraan yang lalu, kita tidak memakai 1 table tapi banyak*

Namun layaknya data yang nanti di edit. Cobalah membuat semacam laporan error / masalah yang terjadi saat nanti user melakukan edit. Disini maksudnya

  • mencatat masalah yg ada di kode yg dibuka. disini maksudnya kode adalah id
  • memberikan saran perbaikan. Bila perbaikan berat tulis hubungi yang berkepentingan
  • memberi form yang dapat memperbaiki.
  • memastikan tidak menampilkan data kosong, bila memang adalah data kosong.. pastikan error tidak muncul (biasa memanggil isi data memakai foreach sehingga muncul error)
Demikianlah saya coba tutup pembahasan CRUD yaitu, apapun CRUD yang kamu gunakan.. selalu ingat bahwa data itu memiliki perbedaan karakteristik penggunaan! Dan jangan lupa backup.
Sampai jumpa lagi

Tidak ada komentar: