sql >> Base de Datos >  >> RDS >> Mysql

¿Es mala una mesa de 'agujero negro'?

No creo que Blackhole tenga ventajas reales.

Escribir el código de activación para mover los datos probablemente no sea mucho menos trabajo que escribir el código para insertar los datos en el lugar correcto en primer lugar.

Como escribe Christian Oudard, no reduce la complejidad, simplemente la traslada a un lugar donde es realmente difícil de depurar.

En el lado negativo:

Los "efectos secundarios" suelen ser una mala idea en el desarrollo de software. Los disparadores son efectos secundarios:tengo la intención de hacer una cosa (insertar datos en una tabla), y en realidad hace muchas otras cosas. Ahora, cuando estoy depurando mi código, también tengo que mantener todos los efectos secundarios en mi cabeza, y los efectos secundarios en sí mismos podrían tener efectos secundarios.

la mayoría del software dedica mucho más tiempo al mantenimiento que al desarrollo. Es probable que incorporar nuevos desarrolladores al equipo y explicarles el truco del agujero negro aumente la curva de aprendizaje, con un beneficio insignificante (en mi opinión).

Debido a que los disparadores son efectos secundarios, y es relativamente fácil desencadenar una enorme cascada de disparadores si no se tiene cuidado, siempre he intentado diseñar mis bases de datos sin depender de los disparadores; donde los disparadores son claramente el camino correcto a seguir, solo he dejado que mis desarrolladores más experimentados los creen. El truco del agujero negro convierte a los disparadores en una forma de trabajo normal y regular. Este es un punto de vista personal, por supuesto.