sql >> Databasteknik >  >> RDS >> Mysql

Är ett "svarthålsbord" ont?

Jag tror inte att blackhole har några riktiga fördelar.

Att skriva triggerkoden för att flytta runt data är förmodligen inte märkbart mindre arbete än att skriva koden för att infoga data på rätt plats i första hand.

Som Christian Oudard skriver minskar det inte komplexiteten - bara flyttar det till en plats där det är riktigt svårt att felsöka.

På minussidan:

"Biverkningar" är vanligtvis en dålig idé i mjukvaruutveckling. Triggers är biverkningar - jag tänker göra en sak (infoga data i en tabell), och det gör faktiskt många andra saker. Nu, när jag felsöker min kod, måste jag ha alla biverkningar i huvudet också - och biverkningarna kan i sig ha biverkningar.

de flesta program lägger ner mycket mer tid på underhåll än på utveckling. Att ta in nya utvecklare i teamet och förklara tricket med det svarta hålet kommer sannolikt att öka inlärningskurvan – till försumbar nytta (enligt min mening).

Eftersom triggers är biverkningar, och det är relativt lätt att sätta igång en enorm kaskad av triggers om du inte är försiktig, har jag alltid försökt designa mina databaser utan att vara beroende av triggers; där triggers helt klart är rätt väg att gå, jag har bara låtit mina mest erfarna utvecklare skapa dem. Det svarta hålstricket gör triggers till ett normalt, regelbundet sätt att arbeta. Detta är naturligtvis en personlig synpunkt.



  1. Automatisk dataversionering i MariaDB Server 10.3

  2. Bästa metoder för bitflaggor i PHP

  3. Återställer Oracle transaktionen vid ett fel?

  4. Uppdatera kolumn i databasen där maxvärde php mysql