Fremdschlüssel sind der beste Weg, um die referenzielle Integrität einer Datenbank sicherzustellen. Das Vermeiden von Kaskaden aufgrund von Magie ist wie das Schreiben von allem in Assembly, weil Sie der Magie hinter Compilern nicht vertrauen.
Was schlecht ist, ist die falsche Verwendung von Fremdschlüsseln, wie sie beispielsweise rückwärts erstellt werden.
Das Beispiel von Juan Manuel ist das kanonische Beispiel. Wenn Sie Code verwenden, besteht eine viel größere Wahrscheinlichkeit, dass falsche DocumentItems in der Datenbank verbleiben, die Sie beißen.
Kaskadierende Aktualisierungen sind beispielsweise nützlich, wenn Sie Verweise auf die Daten haben, die sich ändern können. Angenommen, ein Primärschlüssel einer Benutzertabelle ist die Kombination aus Name und Nachname. Dann möchten Sie, dass Änderungen in dieser Kombination überall dort weitergegeben werden, wo sie referenziert werden.
@Aidan, Diese Klarheit, auf die Sie sich beziehen, ist mit hohen Kosten verbunden. Die Wahrscheinlichkeit, dass falsche Daten in Ihrer Datenbank verbleiben, ist nicht gering . Für mich ist es normalerweise nur mangelnde Vertrautheit mit der DB und Unfähigkeit, herauszufinden, welche FKs vorhanden sind, bevor ich mit der DB zusammenarbeite, die diese Angst fördern. Entweder das oder ständiger Missbrauch der Kaskade, wenn die Entitäten konzeptionell nicht miteinander verbunden waren oder wenn Sie die Geschichte bewahren müssen.
sql-server
Tag entfernen .