Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah meja 'lubang hitam' itu jahat?

Saya tidak berpikir blackhole memiliki pro nyata.

Menulis kode pemicu untuk memindahkan data mungkin tidak kurang berhasil daripada menulis kode untuk menyisipkan data di tempat yang tepat sejak awal.

Seperti yang ditulis Christian Oudard, itu tidak mengurangi kerumitan - hanya memindahkannya ke tempat yang sangat sulit untuk di-debug.

Sisi negatifnya:

"Efek samping" biasanya merupakan ide yang buruk dalam pengembangan perangkat lunak. Pemicu adalah efek samping - Saya bermaksud melakukan satu hal (memasukkan data ke dalam tabel), dan sebenarnya melakukan banyak hal lain. Sekarang, ketika saya men-debug kode saya, saya juga harus menyimpan semua efek samping di kepala saya - dan efek samping itu sendiri dapat memiliki efek samping.

sebagian besar perangkat lunak menghabiskan lebih banyak waktu dalam pemeliharaan daripada dalam pengembangan. Membawa pengembang baru ke dalam tim dan menjelaskan trik lubang hitam kemungkinan akan meningkatkan kurva pembelajaran - untuk manfaat yang dapat diabaikan (menurut saya).

Karena pemicu adalah efek samping, dan relatif mudah untuk memicu serangkaian besar pemicu jika Anda tidak hati-hati, saya selalu mencoba mendesain database saya tanpa bergantung pada pemicu; di mana pemicu jelas merupakan cara yang tepat, saya hanya membiarkan pengembang saya yang paling berpengalaman membuatnya. Trik lubang hitam membuat pemicu menjadi cara kerja yang normal dan teratur. Ini adalah sudut pandang pribadi, tentu saja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara yang benar untuk menggunakan LIKE '%{$var}%' dengan pernyataan yang sudah disiapkan? [mysqli]

  2. Cara tercepat untuk memuat data numerik ke dalam array python/pandas/numpy dari MySQL

  3. Kembalikan 0 jika bidangnya nol di MySQL

  4. Pernyataan yang disiapkan WordPress dengan kondisi IN()

  5. Bagaimana cara memasukkan variabel PHP di dalam pernyataan MySQL