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

Er et 'sorthul' bord ond?

Jeg tror ikke, at blackhole har nogle rigtige fordele.

At skrive triggerkoden for at flytte data rundt er sandsynligvis ikke mærkbart mindre arbejde end at skrive koden for at indsætte dataene på det rigtige sted i første omgang.

Som Christian Oudard skriver, reducerer det ikke kompleksiteten - bare flytter det til et sted, hvor det er virkelig svært at fejlfinde.

På minussiden:

"Bivirkninger" er normalt en dårlig idé i softwareudvikling. Triggere er bivirkninger - jeg har tænkt mig at gøre én ting (indsætte data i en tabel), og det gør faktisk en masse andre ting. Nu, når jeg fejlretter min kode, skal jeg også have alle bivirkningerne i hovedet - og bivirkningerne kan i sig selv have bivirkninger.

det meste software bruger langt mere tid på vedligeholdelse, end det gør på udvikling. At bringe nye udviklere ind i teamet og forklare det sorte hul-trick vil sandsynligvis øge indlæringskurven - til ubetydelig fordel (efter min mening).

Fordi triggere er bivirkninger, og det er relativt nemt at sætte gang i en enorm kaskade af triggere, hvis du ikke er forsigtig, har jeg altid forsøgt at designe mine databaser uden at være afhængig af triggere; hvor triggere klart er den rigtige vej at gå, har jeg kun ladet mine mest erfarne udviklere skabe dem. Det sorte hul-trick gør triggere til en normal, regelmæssig måde at arbejde på. Dette er selvfølgelig et personligt synspunkt.



  1. Hvordan kan jeg logge og finde de dyreste forespørgsler?

  2. Hvorfor får jeg java.lang.AbstractMethodError, når jeg prøver at indlæse en blob i db'en?

  3. Spring Boot JPA MySQL :Kunne ikke bestemme en passende driverklasse

  4. Hvordan gemmer man daglige poster fra en mysql-tabel til en anden?