sql >> Database >  >> RDS >> Mysql

Is een 'blackhole'-tafel slecht?

Ik denk niet dat blackhole echte voordelen heeft.

Het schrijven van de triggercode om gegevens te verplaatsen is waarschijnlijk niet merkbaar minder werk dan het schrijven van de code om de gegevens in de eerste plaats op de juiste plaats in te voegen.

Zoals Christian Oudard schrijft, vermindert het de complexiteit niet - het verplaatst het alleen naar een plek waar het echt moeilijk te debuggen is.

Nadeel:

"Neveneffecten" zijn meestal een slecht idee bij softwareontwikkeling. Triggers zijn bijwerkingen - ik ben van plan één ding te doen (gegevens in een tabel invoegen), en het doet eigenlijk nog veel meer dingen. Nu, als ik mijn code aan het debuggen ben, moet ik ook alle bijwerkingen in mijn hoofd houden - en de bijwerkingen kunnen zelf bijwerkingen hebben.

de meeste software besteedt veel meer tijd aan onderhoud dan aan ontwikkeling. Door nieuwe ontwikkelaars in het team te brengen en de truc met het zwarte gat uit te leggen, zal de leercurve waarschijnlijk toenemen - met een verwaarloosbaar voordeel (naar mijn mening).

Omdat triggers bijwerkingen zijn, en het relatief eenvoudig is om een ​​enorme cascade van triggers te veroorzaken als je niet oppast, heb ik altijd geprobeerd mijn databases te ontwerpen zonder afhankelijk te zijn van triggers; waar triggers duidelijk de juiste manier zijn, heb ik ze alleen laten maken door mijn meest ervaren ontwikkelaars. De truc van het zwarte gat maakt triggers tot een normale, reguliere manier van werken. Dit is natuurlijk een persoonlijk standpunt.



  1. Leer hoe u een procedure uitvoert in Toad For Oracle

  2. Verschil tussen SET autocommit=1 en START TRANSACTION in mysql (Heb ik iets gemist?)

  3. PostgreSQL-index versus InnoDB-index - De verschillen begrijpen

  4. MYSQL schakelt automatisch bijsnijden uit