Я не думаю, что у черной дыры есть настоящие плюсы.
Написание кода триггера для перемещения данных, вероятно, не намного сложнее, чем написание кода для вставки данных в нужное место.
Как пишет Кристиан Одард, это не уменьшает сложность - просто перемещает его в место, где его действительно сложно отладить.
С другой стороны:
«Побочные эффекты» обычно являются плохой идеей при разработке программного обеспечения. Триггеры - это побочные эффекты - я собираюсь сделать одну вещь (вставить данные в таблицу), а это на самом деле делает много других вещей. Теперь, когда я отлаживаю свой код, я должен держать все побочные эффекты в моей голове - и сами побочные эффекты могут иметь побочные эффекты.
большая часть программного обеспечения тратит гораздо больше времени на обслуживание, чем на разработку. Привлечение новых разработчиков в команду и объяснение уловки черной дыры, вероятно, увеличит кривую обучения - для незначительной выгоды (на мой взгляд).
Поскольку триггеры являются побочными эффектами, и относительно легко вызвать огромный каскад триггеров, если вы не будете осторожны, я всегда пытался проектировать свои базы данных без использования триггеров; там, где триггеры - верный путь, я позволяю создавать их только моим опытным разработчикам. Трюк с черной дырой превращает триггеры в обычный, обычный способ работы. Это личная точка зрения, конечно.