Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Uma mesa de 'buraco negro' é má?


Eu não acho que blackhole tenha nenhum prós real.

Escrever o código do gatilho para mover os dados provavelmente não é visivelmente menos trabalhoso do que escrever o código para inserir os dados no lugar certo em primeiro lugar.

Como escreve Christian Oudard, ele não reduz a complexidade - apenas o move para um lugar onde é realmente difícil de depurar.

No lado negativo:

"Efeitos colaterais" geralmente são uma má ideia no desenvolvimento de software. Gatilhos são efeitos colaterais - eu pretendo fazer uma coisa (inserir dados em uma tabela), e na verdade faz muitas outras coisas. Agora, quando estou depurando meu código, tenho que manter todos os efeitos colaterais na minha cabeça também - e os próprios efeitos colaterais podem ter efeitos colaterais.

a maioria dos softwares gasta muito mais tempo em manutenção do que em desenvolvimento. Trazer novos desenvolvedores para a equipe e explicar o truque do buraco negro provavelmente aumentará a curva de aprendizado - para um benefício insignificante (na minha opinião).

Como os gatilhos são efeitos colaterais e é relativamente fácil desencadear uma enorme cascata de gatilhos se você não tomar cuidado, sempre tentei projetar meus bancos de dados sem depender de gatilhos; onde os gatilhos são claramente o caminho certo, eu só deixei meus desenvolvedores mais experientes criá-los. O truque do buraco negro transforma os gatilhos em uma maneira normal e regular de trabalhar. Este é um ponto de vista pessoal, claro.