Mysql
 sql >> Database >  >> RDS >> Mysql

Un tavolo da "buco nero" è malvagio?

Non credo che il buco nero abbia dei veri pro.

Scrivere il codice trigger per spostare i dati in giro non è probabilmente meno faticoso che scrivere il codice per inserire i dati nel posto giusto in primo luogo.

Come scrive Christian Oudard, non riduce la complessità, ma la sposta in un punto in cui è davvero difficile eseguire il debug.

Sul lato negativo:

Gli "effetti collaterali" sono generalmente una cattiva idea nello sviluppo del software. I trigger sono effetti collaterali:ho intenzione di fare una cosa (inserire i dati in una tabella) e in realtà fa molte altre cose. Ora, quando eseguo il debug del mio codice, devo tenere anche tutti gli effetti collaterali nella mia testa - e gli effetti collaterali stessi potrebbero avere effetti collaterali.

la maggior parte dei software dedica molto più tempo alla manutenzione che allo sviluppo. È probabile che portare nuovi sviluppatori nel team e spiegare il trucco del buco nero aumenterà la curva di apprendimento, con un vantaggio trascurabile (a mio avviso).

Poiché i trigger sono effetti collaterali ed è relativamente facile innescare un'enorme cascata di trigger se non stai attento, ho sempre cercato di progettare i miei database senza fare affidamento sui trigger; dove i trigger sono chiaramente la strada giusta da percorrere, ho lasciato che i miei sviluppatori più esperti li creassero. Il trucco del buco nero trasforma i trigger in un modo normale e regolare di lavorare. Questo è un punto di vista personale, ovviamente.