Anfang des Inhaltsbereichs

Funktionsdokumentation Fremdschlüssel  Dokument im Navigationsbaum lokalisieren

Verwendung

Mit Hilfe von Fremdschlüsseln definieren Sie Beziehungen zwischen Tabellen im ABAP Dictionary, legen Werteprüfungen für Eingabefelder an und verknüpfen mehrere Tabellen in einer View oder einem Sperrobjekt.

Funktionsumfang

Feldzuordnung im Fremdschlüssel

Ein Fremdschlüssel verknüpft zwei Tabellen T1 und T2 miteinander, indem Felder der Tabelle T1 den Primärschlüsselfeldern der Tabelle T2 zugeordnet werden. Die folgende Abbildung zeigt die Beziehungen zwischen den Feldern dieser beiden Tabellen.

Diese Grafik wird im zugehörigen Text erklärt

Tabelle T1 heißt in diesem Fall Fremdschlüsseltabelle (abhängige Tabelle) und Tabelle T2 Prüftabelle (referierte Tabelle). Die einander zugeordneten Feldpaare müssen den gleichen Datentyp und die gleiche Länge besitzen. Jedem Schlüsselfeld der Prüftabelle entspricht ein Feld der Fremdschlüsseltabelle. Ein solches Feld wird als Fremdschlüsselfeld bezeichnet.

Ein Fremdschlüssel erlaubt eine Zuordnung von Datensätzen in Fremdschlüsseltabelle und Prüftabelle. Mit Hilfe der Einträge in den Fremdschlüsselfeldern identifiziert ein Satz der Fremdschlüsseltabelle eindeutig einen Satz der Prüftabelle.

Prüffeld und Werteprüfung

Eines der Fremdschlüsselfelder ist als Prüffeld ausgezeichnet. Für dieses Feld wird die Fremdschlüsselbeziehung gepflegt.

Bei einer Eingabe in das Prüffeld wird geprüft, ob in der Prüftabelle ein Satz mit dem durch die Werte in den Fremdschlüsselfeldern vorgegebenen Schlüssel existiert. Falls ein solcher Satz existiert, ist die Eingabe zulässig, andernfalls wird die Eingabe vom System zurückgewiesen.

Diese Grafik wird im zugehörigen Text erklärt

Die obige Abbildung illustriert die Verwendung von Prüffeldern. In diesem Beispiel würde eine Eingabe Feld2 = 2 und Feld4 = 2 zurückgewiesen, da in T2 kein Satz mit dem Schlüssel Feld5 = 2 und Feld6 = 2 vorhanden ist.

Sie haben die Möglichkeit, nicht gegen alle Schlüsselfelder der Prüftabelle zu prüfen. Um Felder der Fremdschlüsseltabelle aus der Zuordnung der Felder zur Prüftabelle auszuschließen, verwenden Sie generische und konstante Fremdschlüssel.

Funktionsweise der Werteprüfung

Aus der Definition des Fremdschlüssels wird eine SELECT-Anweisung generiert. Wenn Sie einen Wert in das Prüffeld eingeben, wird diese SELECT-Anweisung abgesetzt. Wird ein passender Satz der Prüftabelle gefunden, so ist die Eingabe zulässig. Anderenfalls wird die Eingabe zurückgewiesen.

Für die in der obigen Abbildung dargestellte Fremdschlüsseltabelle würde die entsprechende SELECT-Anweisung wie folgt aussehen:

SELECT * FROM T2 WHERE T2-FELD5 = T1-FELD2 AND T2-FELD6 = T1-FELD4.

Hinweis

Diese SQL-Anweisung ist ein Pseudocode, der die entsprechende Funktionalität erklärt. Die Syntax dieser Anweisung ist nicht mit der Anweisung in ABAP identisch.

Eine Eingabe in einem Dynpro für das Prüffeld Feld2 ist zulässig, wenn in der Prüftabelle ein Satz mit den auf dem Dynpro für Feld2 und Feld4 gemachten Eingaben als Schlüssel existiert.

Beispiel

In der Tabelle SBOOK im Flugmodell sind die Flugbuchungen des Kunden für eine Fluggesellschaft verzeichnet. Die Flugbuchungen können von Reisebüros oder direkt am Verkaufsschalter der Fluggesellschaft vorgenommen werden. Falls die Buchung an einem Verkaufsschalter vorgenommen wurde, wird in der Tabelle SBOOK dessen Nummer im Feld COUNTER zusammen mit der Buchung abgespeichert.

Sie müssen sicherstellen, dass nur korrekte Nummern von Schaltern in die Tabelle SCOUNTER eingetragen werden können. Die notwendige Werteprüfung können Sie durch Anlegen eines Fremdschlüssels für das Prüffeld COUNTNUM definieren. Dies wird in der folgenden Abbildung dargestellt.

Diese Grafik wird im zugehörigen Text erklärt

Siehe auch:

Strukturübergreifende Fremdschlüssel

Semantische Eigenschaften eines Fremdschlüssels

Fremdschlüssel anlegen

 

 

 

Ende des Inhaltsbereichs