Einige Datenbank-Management- Anwendungen befassen sich mit hierarchischen Daten wie Staaten bis der Landkreise , die wiederum enthalten Städte gemacht . Sie könnten versucht sein, diese Informationen in separaten Tabellen in Ihrem DBMS zu organisieren - eine für jede Ebene der Hierarchie - aber eine elegantere Lösung verwendet eine auf sich selbst verweisende Tabelle, die einfacher zu verwalten ist und bietet Platz für eine breitere Palette von Daten . Sich selbst verweisende Tabelle
Um eine auf sich selbst verweisende Tabelle zu erstellen , werden Sie mit zwei Feldern , eine ID-Nummer und einem Elternteil ID-Nummer beginnen. Zu diesen Bereichen , können Sie keine anderen für die Anwendung geeignet , wie z. B. Name, Beschreibung , Ort oder Bevölkerung. Der Einfachheit halber können Sie die ID-Nummer auf eine automatische Nummerierung Feldtyp gesetzt , so dass die Datenbank automatisch Nummern neue Datensätze in aufsteigender Reihenfolge. Die Eltern ID verweist auf die ID-Nummer des übergeordneten Datensatz in der Hierarchie , wenn der Datensatz hat keine Eltern haben, können Sie dieses Feld auf Null gesetzt. Zum Beispiel hat der Datensatz für Kalifornien eine ID von einem und ein übergeordnetes ID von Null. Der Rekord für San Francisco County hat eine ID von zwei und ein Elternteil ID von einem. Jedes Kind Datensatz in der Tabelle Verweise übergeordneten Datensätze in derselben Tabelle ; . Ist der Tisch selbst verweisende
Consolidation
Ein Effekt der sich selbst verweisende Tabellen ist eine Konsolidierung mehrerer Tabellen in einer Tabelle . Mit weniger Tabellen vereinfacht die Datenbank und erleichtert die Wartung . Moderne Datenbanksysteme leicht unterbringen Millionen von Datensätzen pro Tabelle , so halten alle von einer Hierarchie der Datenelemente in einer einzigen Tabelle ist nicht ein Problem . Durch die Einstellung der ID-Feld zu einem Primär-Schlüssel und dem übergeordneten ID zu einem Index , können Sie leicht finden alle Datensätze entlang jeder Filiale der Hierarchie .
Flexibilität
eine Datenbank, die eine Tabelle enthält für jede Ebene in einer Hierarchie funktioniert gut , bis eine neue Ebene erscheint , da müssen Sie dann fügen Sie eine neue Tabelle , um die Änderung zu modifizieren und alle Anwendungsprogramme, die die Datenbank verwenden . Im Gegensatz dazu nimmt eine sich selbst verweisende Tabelle beliebig viele Hierarchiestufen . Die Muttergesellschaft ID-Feld zeigt immer auf die nächste Stufe in der Hierarchie , so dass die Datensätze bilden eine konsistente Kette . Die Anzahl der Stufen in der Hierarchie kann das gleiche für alle übergeordneten Datensätze sein, oder er kann variieren , die sich selbst verweisende Tabelle Griffe jedem Fall
Cascading Delete
. auf sich selbst verweisende Tabelle enthält viele Datensätze , können Sie fragen , was zu tun , wenn Sie einen übergeordneten Datensatz löschen. Sofern Sie löschen auch alle untergeordneten Datensätze , riskieren Sie die Schaffung von " Waisen " oder Datensätze mit ungültigen übergeordneten IDs . Glücklicherweise gibt es einen Mechanismus , um diese Situation automatisch verarbeiten . Wenn Sie die übergeordnete ID-Feld zu erstellen, können Sie angeben, dass es einen Fremdschlüssel Feld , und verwenden Sie das ID-Feld der Tabelle als wichtigste Schlüssel . Sobald Sie dies getan haben , können Sie die Einschränkung , "ON DELETE CASCADE " auf dem Spielfeld. Mit der Einschränkung und Fremdschlüsseleinstellungen erfolgt ist, wird die Datenbank zu löschen alle entsprechenden untergeordneten Datensätze , wenn Sie einen übergeordneten Datensatz löschen.