Je ne pense pas que Blackhole ait de vrais avantages.
Écrire le code du déclencheur pour déplacer les données n'est probablement pas sensiblement moins de travail que d'écrire le code pour insérer les données au bon endroit en premier lieu.
Comme l'écrit Christian Oudard, cela ne réduit pas la complexité - la déplace simplement vers un endroit où il est vraiment difficile de déboguer.
Inconvénient :
Les "effets secondaires" sont généralement une mauvaise idée dans le développement de logiciels. Les déclencheurs sont des effets secondaires - j'ai l'intention de faire une chose (insérer des données dans un tableau), et il fait en fait beaucoup d'autres choses. Maintenant, quand je débogue mon code, je dois aussi garder tous les effets secondaires dans ma tête - et les effets secondaires pourraient eux-mêmes avoir des effets secondaires.
la plupart des logiciels passent beaucoup plus de temps en maintenance qu'en développement. Amener de nouveaux développeurs dans l'équipe et expliquer le truc du trou noir est susceptible d'augmenter la courbe d'apprentissage - pour un bénéfice négligeable (à mon avis).
Étant donné que les déclencheurs sont des effets secondaires et qu'il est relativement facile de déclencher une énorme cascade de déclencheurs si vous ne faites pas attention, j'ai toujours essayé de concevoir mes bases de données sans dépendre des déclencheurs. là où les déclencheurs sont clairement la bonne voie à suivre, je n'ai laissé que mes développeurs les plus expérimentés les créer. L'astuce du trou noir transforme les déclencheurs en un mode de fonctionnement normal et régulier. C'est un point de vue personnel, bien sûr.