Es gibt ein Feature/Einschränkung, die Fremdschlüssel Ihrem System bringen, was bisher nicht erwähnt wurde. Das ist Commit/Transaktionslogik (so nenne ich es sowieso). Wenn Fremdschlüssel aktiviert sind, müssen alle Zeilen für ein Update in allen betroffenen Tabellen vorhanden sein, damit das Commit ausgeführt werden kann (keinen SQL-Fehler auslösen, bei dem die Fremdschlüsseleinschränkungen verletzt wurden).
Wenn Sie eine Reihe von Code haben, der funktioniert und "spielt schnell und locker", mit Commits/Transaktionen. Dann könntest du ein wenig Abhilfe schaffen, damit die Dinge mit FKs im Schema funktionieren.
Auch, zumindest Oracle, können Sie Einschränkungen deaktivieren (nicht nur löschen/entfernen). So können Sie sie einfach ein-/ausschalten. Praktisch, wenn Sie einige Bulk-Operationen entweder ohne den Overhead der Constraints durchführen wollen, oder um etwas "Operation" an den Daten durchzuführen, die Zwischenzustände haben, die die Constraints nicht erfüllen würden.
„in keinem Zusammenhang mit Geschwindigkeit der Ausführung“ deaktivieren für Einsätze nicht ganz korrekt ist (ich weiß, Sie wissen aber Tuan vielleicht nicht) – SquareCog
Thx - ich ein bisschen die Antwort ausgefüllt, auf eine Weise, die am selben Ort enden sollte. – dkretz
gute argument über einfügen. Ich habe eine gute Sicht auf die Struktur. wie ich sagte integrität ist kein problem. Ich brauche rohe Geschwindigkeit. –