Mengenal Pengaturan Master/Detail pada Table Setup di PHPMaker

Mengenal Pengaturan Master/Detail pada Table Setup di PHPMaker
Mengenal Pengaturan Master/Detail pada Table Setup di PHPMaker

By niken 07 Des 2017, 19:51:05 WIB - Kategori: PHP


Mengenal Pengaturan Master/Detail pada Table Setup di PHPMaker

Bagian terakhir yang akan kita bahas yang terdapat di dalam pengaturan level Table di dalam Table Setup dari Aplikasi PHPMaker adalah Master/Detail. Ini merupakan bagian untuk mengatur tabel-tabel yang mempunyai relasi Parent dan Child atau sering dikenal dengan istilah Master/Detail.
Di dunia nyata, semua entitas biasanya mempunyai relasi antara yang satu dengan lainnya. Ada yang mempunyai relasi satu ke satu atau One-to-One, ada yang mempunyai relasi satu ke banyak atau One-to-Many, atau bahkan relasi banyak ke banyak atau Many-to-Many.
Di PHPMaker, relasi antar dua tabel disederhanakan menjadi relasi One-to-Many. Di sinilah esensi dari Master/Detail yang sebenarnya di PHPMaker. Implementasinya tentu tidak semua harus One-to-Many, tapi, sekali lagi, hal ini untuk menyederhanakan relasi dari berbagai kemungkinan tadi, PHPMaker menggunakan konsep seperti itu.
Jika pada implementasinya ada yang One-to-One atau bahkan Many-to-Many, maka hal itu bisa diatasi dengan membuat beberapa kali relasi dari beberapa tabel yang terkait sampai memenuhi relasi selain One-to-Many tadi.
Contoh, untuk Many-to-Many, maka Anda sebagai Web Developer cukup hanya membuat relasi One-to-Many, dan yang satunya Many-to-One. Hasil akhirnya tentu saja menjadi Many-to-Many. Sampai di sini, mudah-mudahan Anda tidak bingung, karena konsep ini cukup sederhana dan mudah dimengerti.
Sekali lagi, pastikan Anda sudah memilih salah satu Table yang terdapat di panel Database, lalu pencet tab Table di panel sebelah kanan. Di bagian bawah sebelah kanan dari tab Table tadi, akan muncul panel Master/Detail.
Di dalam panel Master/Detail, Anda dapat mengatur relasi antara dua tabel dengan cara mengpencet tombol Modify…. Selanjutnya sistem akan menunjukan jendela baru bernama Master/Detail – help. Di jendela baru ini terdapat dua buah panel. Panel pertama di sebelah kiri berisi daftar Table atau object yang terdapat di project PHPMaker Anda. Panel kedua di sebelah kanan merupakan area tempat Anda mendefinsikan relasi antara dua buah Table.
Caranya cukup dengan menyeret (drag) object Table-Table yang diinginkan dari panel kiri lalu menjatuhkannya (drop) ke panel sebelah kanan. Konsep Master/Detail di PHPMaker diusahakan menempatkan tabel Master di sebelah kiri, sedangkan tabel Detail di sebelah kanan dari tabel Master. Keduanya tentu saja (sekali lagi) harus ditempatkan di panel sebelah kanan.
Setelah itu, seret salah satu Field dari tabel Master lalu jatuhkan ke Field terkait di tabel Detail. Selanjutnya Anda akan melihat angka/simbol 1 di sebelah kiri, dan simbol oo di sebelah kanan. Seperti yang sudah dijelaskan sebelumnya, hal itu menunjukkan bahwa tabel tempat pertama kali Anda menyeret Field akan berperan sebagai tabel Master, sedangkan tabel tempat Field tersebut dijatuhkan merupakan tabel Detail.
Lakukan hal yang sama dengan langkah-langkah tadi untuk merelasikan tabel yang lain. Jika sudah selesai, pencet tombol OK pada jendela Master/Detail – help tadi. Selanjutnya Anda akan dibawa kembali ke panel Master/Detail, dan di sana akan ditampilkan hasil dari relasi tabel yang sudah Anda tentukan tadi.
Di sebelah kanan dari setiap relasi tabel Anda akan melihat tiga buah kolom sebagai berikut:
Referential Integrity, jika diaktifkan, maka PHPMaker akan membangkitkan kode yang memastikan bahwa Pengguna tidak boleh menambah/mengubah Record di tabel Detail kecuali jika Foreign Key merujuk ke Record yang valid di tabel Master.
Cascade Delete, jika diaktifkan, maka PHPMaker akan membangkitkan kode yang akan memastikan jika Record di tabel Master dihapus, maka semua Record yang terkait di tabel Detail juga akan dihapus.
Cascade Update, jika diaktifkan, maka PHPMaker akan membangkitkan kode yang akan memastikan jika Record di tabel Master diubah/diperbarui, maka semua Record yang terkait di tabel Detail akan ikut diperbarui juga.
Penting untuk diingat, bahwa jika Database yang Anda gunakan sudah mendukung fitur ON DELETE CASCADE dan atau ON UPDATE CASCADE, maka Anda tidak perlu menggunakan dua item pengaturan yang terakhir tadi.
Berdasarkan pengalaman Penulis, fitur ini benar-benar sangat membantu Web Developer dalam membangun Aplikasi Web yang membutuhkan fitur Master/Detail dengan aturan ketat seperti di atas. Apalagi jika jumlah Table yang terlibat dalam relasi Master/Detail tadi jumlahnya sangat banyak, maka akan sangat banyak waktu Development yang bisa dihemat, sehingga Anda sebagai Web Developer bisa lebih fokus dalam mengimplementasikan business-logic maupun business-process Anda.



ARTIKEL TERKAIT: