18 Stimmen

Ist ein "Schwarzer-Loch-Tisch" böse?

Lesen zu diese Frage Ich habe gerade erfahren, dass es die blackhole Tabellentrick: besteht im Wesentlichen darin, eine einzige Tabelle zum Einfügen von Daten zu verwenden, und dann einen Trigger, der die Daten in viele andere Tabellen aufteilt.

Ich frage mich, ob dies zu Problemen führen könnte, sobald die Entwickler, die an dem Projekt arbeiten, sich dessen bewusst sind.

Was sind die Vor- und Nachteile dieser technik ?

bearbeiten : Der Blink, den ich im Kopf hatte, als ich das Beispiel sah, bezieht sich auf Transaktionen: Wenn aus irgendeinem Grund die Transaktion fehlschlägt, finden Sie die blackhole Zeile mit den Originaldaten, für historische Zwecke und vielleicht eine Hilfe bei der Fehlersuche - aber das scheint die einzige +1 zu sein, die ich bei schwarzen Löchern sehen kann. Ideen?

1voto

Christian Oudard Punkte 45045

Bitte tun Sie das nicht. Das reduziert die Komplexität nicht, sondern verschiebt sie nur. Diese Art von Logik gehört in die Anwendungsschicht, wo Sie eine schönere Sprache wie PHP, Python oder Ruby verwenden können, um sie zu implementieren.

1voto

Kuberchaun Punkte 27481

Tun Sie das nicht. Die Tatsache, dass es als Trick und nicht als Standardmethode bezeichnet wird, sagt für mich genug aus.

Dadurch wird das normale Verwendungsmuster des relationalen Modells völlig außer Kraft gesetzt. Ich bin mir nicht sicher, ob es tatsächlich die Normalform zerstört, denn das kann man immer noch alles haben. Es bringt nur die Art und Weise durcheinander, wie die Daten in die Zieltabellen gelangen. Das sieht nach einem Leistungsalptraum aus, der noch dazu ein Wartungsalptraum ist. Stellen Sie sich vor, eine Tabelle hat einen Trigger, der beispielsweise bei mehr als 1.800 Tabelleneinfügungen ausgelöst werden muss. Da wird mir einfach schlecht.

Dies ist ein interessanter Taschenspielertrick, mehr nicht.

0voto

glglgl Punkte 84928

Ich würde vermuten, dass dies recht langsam wäre, da die Vorteile von "Masseneinlagen" nicht genutzt werden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X