Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ist ein „Blackhole“-Tisch böse?

Ich glaube nicht, dass Blackhole wirkliche Vorteile hat.

Das Schreiben des Triggercodes zum Verschieben von Daten ist wahrscheinlich nicht merklich weniger Arbeit als das Schreiben des Codes zum Einfügen der Daten an der richtigen Stelle.

Wie Christian Oudard schreibt, reduziert es die Komplexität nicht – es verschiebt es nur an eine Stelle, wo es wirklich schwer zu debuggen ist.

Auf der anderen Seite:

„Nebenwirkungen“ sind in der Softwareentwicklung meist eine schlechte Idee. Auslöser sind Nebeneffekte - ich beabsichtige, eine Sache zu tun (Daten in eine Tabelle einzufügen), und es tut tatsächlich viele andere Dinge. Wenn ich jetzt meinen Code debugge, muss ich auch alle Nebenwirkungen im Kopf behalten – und die Nebenwirkungen könnten selbst Nebenwirkungen haben.

Die meiste Software verbringt viel mehr Zeit mit der Wartung als mit der Entwicklung. Neue Entwickler ins Team zu holen und den Trick mit dem Schwarzen Loch zu erklären, wird wahrscheinlich die Lernkurve erhöhen – mit vernachlässigbarem Nutzen (aus meiner Sicht).

Da Trigger Nebeneffekte sind und es relativ einfach ist, eine riesige Kaskade von Triggern auszulösen, wenn Sie nicht aufpassen, habe ich immer versucht, meine Datenbanken unabhängig von Triggern zu entwerfen. Wo Trigger eindeutig der richtige Weg sind, habe ich sie nur von meinen erfahrensten Entwicklern erstellen lassen. Der Schwarze-Loch-Trick macht Trigger zu einer normalen, regulären Arbeitsweise. Das ist natürlich eine persönliche Sichtweise.