Dear Mas Hendra,
Nilai kosong pada product kategory dapat anda wakilkan pada satu nilai semisal N/A, bahkan kalau perlu "" (string kosong) anda masukkan dalam T_Product_Category, sehingga tetap menjaga user memasukkan data kategori hanya yang telah di definisikan secara baku di T_Product_Category, user tidak akan memasukkan kategori lain di luar dari itu, termasuk kategori yang kesalahan ketik. Operator memang harus dipaksa memasukkan data yang ada dalam master-nya saja, manfaatnya ada pada fungsi kontrol dan nantinya pada evaluasi laporan summary.
Cascade update dan cascade delete harus dipergunakan sebijak mungkin. Jangan memasang cascade delete pada tabel transaksi - master, seperti kode barang dan transaksi beli. Kita tidak boleh menghapus kode barang yang sudah pernah di transaksikan. Tetapi kita disarankan memasang cascade delete pada tabel transaksi header-detail, sehinggap penghapusan transaksi bisa dilakukan dari sisi header saja, otomatis semua detail ikut terhapus.
Aksan Kurdin
On 3/15/2011 12:22 PM, Hendra Agestha Hamid wrote:
Dear Warga Milis,,,
Saya bereksperimen dgn bikin 2 tabel yaitu T_Product Category dan T_Product (sebuah field di T_Product [NamaKategori] diambil / lookup ke T_Product Category) dan field [NamaKategori] ini ter-relationship dgn [KodeKategori] di T_Product Category.
Saya sudah mencoba berbagai kemungkinan yg terpikir oleh saya dan kesimpulan sementara saya bahwa kita tidak harus mencontreng Enforce Refrential Integrity (ERI), kita bisa menggantikannya dengan mengatur "Join Type", malah dengan tdk mencontreng ERI tsb kita memperoleh keuntungan yaitu (contoh mengacu pada eksperimen 2 tabel yg saya bikin) kita bisa mengisikan suatu record pada T_Product dengan mengosongkan field [NamaKategori], dan selanjutnya kita tetap bisa mengisikan record yg baru, kondisi spt ini menurut saya sering terjadi dlm real, yaitu bila misal field [NamaKategori] tersebut bersifat optional (bisa diisi bisa tidak), kalau mencotreng ERI hal ini tdk bisa kita lakukan sehingga utk "memaksa" operator utk mengisi field [NamaKategori] di T_Product kita hrs menset "required".
Memang ada satu fungsi ERI yaitu bila kita juga mencontreng "Cascade Delete Related Records" (CDRR), misal kita menghapus salah satu record di T_Product Category) maka seluruh record di T_Product yg berhubungan akan terhapus, keuntungannya jumlah record berkurang, tapi ini juga bisa jadi kelemahan bila misal kita menginginkan seluruh data di T_Product tetap ada sebagai dokumentasi. Kelebihan fungsi CDRR inipun bisa kita ganti dengan bermain query dan mengatur "Join Type" (misal kita tdk mencontreng ERI).
Saya mohon bimbingan para suhu Access ttg ERI ini yaitu dalam kasus seperti apa fungsi ERI mau tdk mau harus dipakai, seperti yg saya bilang eksperimen2 saya di atas baru kemungkinan2 yg terpikir oleh saya yg newbie. Soalnya Ngeri2-sedap juga bila ternyata dengan tidak memakai fasilitas ERI suatu saat terjadi masalah terutama kesalahan tampilan informasi. Mohon maaf panjang banget kyk koran...
Terima kasih
Regards
Hendra
__._,_.___

No comments:
Post a Comment