2008-10-29 3 views

Antwort

26

Ja. Stellt sicher, dass Sie keine verwaiste Person haben (Eintrag ohne Eltern) und abhängig von der Verwendung, wenn Sie eine kaskadierende Löschung definieren, werden beim Löschen einer übergeordneten Person alle untergeordneten Elemente ebenfalls gelöscht.

Nachteil wäre ein geringer Leistungseinbruch wie bei jedem anderen Fremdschlüssel.

+4

Eine "kinderlose Waise" ??? ;-) – Yarik

4

Ja, Sie sollten es zu einem Fremdschlüssel machen.

Die Vorteile werden ein besseres Datenmodell mit weniger Redundanz sein.

13

Ja, Sie sollten. Wenn Sie ein Attribut in einer Datenbankbeziehung haben, die als Primärschlüssel einer anderen Beziehung in derselben Datenbank dient, sollten Sie es zu einem FK machen.

  • Unter der Annahme, die richtige Gestaltung der Beziehungen, Fremdschlüsselbedingungen erschweren es für einen Programmierer einzuführen, Inkonsistenzen in der Datenbank:

    Sie die advantages associated to foreign keys genießen.

  • Die Zentralisierung der Überprüfung dieser Einschränkungen durch den Datenbankserver macht es unnötig, diese Prüfungen auf der Anwendungsseite durchzuführen. Dies schließt die Möglichkeit aus, dass verschiedene Anwendungen die Beschränkungen nicht auf die gleiche Weise überprüfen.
  • Die Verwendung von kaskadierenden Updates und Löschungen kann den Anwendungscode vereinfachen.
  • Richtig gestaltete Fremdschlüsselregeln helfen beim Dokumentieren von Beziehungen zwischen Tabellen.

Die Nachteile:

  • Wenn Sie Fremdschlüssel zu definieren, ist es manchmal schwieriger Bulk-Operationen durchzuführen.
  • Vielleicht bedeutet es mehr Festplattennutzung und einen leichten Leistungseinbruch.
5

Ja, Sie sollten.

Vorteile (wie für jeden Fremdschlüssel):

  • Stellt sicher, dass parent_id in der Tabelle zu löschen, eine wirkliche Zeile verweist
  • verhindert ein versehentliches Löschen eines Elternteils, die Kinder, oder sorgt dafür, dass die Lösch-Kaskaden muss die Kinder
  • auch Informationen der Optimierer

verwenden kann ich nicht von irgendwelchen realen Nachteile denken.

Verwandte Themen