Saya memiliki Object
tabel yang diisi dari layanan Terpadu ( yang dapat saya ubah jika perlu ) dari database lain. Pada titik-titik tertentu kita perlu menambahkan posting secara manual di tabel lain ObjectObjectGroup (ObjectId, ObjectGroupId)
yang diperlukan jika Object.ObjectType
memiliki nilai integer tertentu. Karena layanan integrasi tidak menangani pembaruan semacam itu, saya berpikir untuk menambahkan pemicu ke tabel Object yang dalam pseudo-code adalah sebagai berikut:
if Object.ObjectType = 10
begin
if Object.ObjectNumber like '<string pattern>'
begin
insert into ObjectObjectGroup values...
end
end
Apakah pengaturan ini bijaksana, atau apakah ada cara yang lebih baik dalam hal kinerja?
sumber
Pemicu adalah alat yang ampuh, dan seperti alat lainnya, Anda harus berhati-hati saat menggunakannya.
Ketika Anda membuat kesalahan dalam sebuah pemicu, hal-hal yang terjadi secara DRASTIS salah dan kecuali Anda menjalankan jejak, Anda tidak akan menyadari ...
Mereka melakukan 'secara ajaib' mengubah / menyisipkan / menghapus data dimana pengguna DB (aplikasi saat ini / aplikasi masa depan / pengembang melakukan pembaruan satu kali) tidak menyadari / bermaksud.
Masalah besar adalah bahwa setelah Anda membuat pelatuk, tidak jelas bagi pengembang / pengguna lain bahwa pelatuk ada di sana dan apa fungsinya.
Yang mengatakan, mereka adalah alat yang hebat untuk menjaga integritas data Anda dan untuk Audit perubahan yang sebenarnya.
Anda perlu bertanya pada diri sendiri apakah logika yang ingin Anda masukkan pada pelatuk paling sesuai dengan aplikasi atau dalam DB, mempertimbangkan risiko di kedua sisi (apa yang terjadi jika aplikasi baru datang dan tidak menegakkan ini aturan?)
sumber