Anfang des Inhaltsbereichs

Hintergrunddokumentation Fremdschlüssel  Dokument im Navigationsbaum lokalisieren

Beziehungen zwischen Tabellen können im ABAP Dictionary durch das Anlegen von Fremdschlüsseln abgebildet werden.

Über Fremdschlüssel können auf einfache Art Werteprüfungen auf Eingabefeldern angelegt werden. Weiterhin können Fremdschlüssel verwendet werden, um mehrere Tabellen in einem Strukturlink View oder einem Strukturlink Sperrobjekt zu verknüpfen.

Feldzuordnung im Fremdschlüssel

Ein Fremdschlüssel stellt die Verbindung zweier Tabellen T1 und T2 her, indem er Felder der Tabelle T1 den Primärschlüsselfeldern der Tabelle T2 zuordnet.

Diese Grafik wird im zugehörigen Text erklärt

Die Tabelle T1 heißt in diesem Fall Fremdschlüsseltabelle (abhängige Tabelle) und die 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 also ein Feld der Fremdschlüsseltabelle. Ein solches Feld heißt Fremdschlüsselfeld.

Ein Fremdschlüssel erlaubt eine Zuordnung von Datensätzen in Fremdschlüsseltabelle und Prüftabelle. Durch die Einträge in den Fremdschlüsselfeldern spezifiziert 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, d.h. 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. Ist dies der Fall, ist die Eingabe zulässig, andernfalls wird die Eingabe vom System zurückgewiesen.

Diese Grafik wird im zugehörigen Text erklärt

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.

Falls nicht gegen alle Schlüsselfelder der Prüftabelle geprüft werden soll, kann man über generische und konstante Fremdschlüssel Felder der Fremdschlüsseltabelle aus der Zuordnung zu den Feldern der Prüftabelle herausnehmen.

Funktionsweise der Werteprüfung

Aus der Definition des Fremdschlüssels wird ein SELECT-Statement generiert. Wird eine Eingabe in das Prüffeld gemacht, so wird dieses SELECT-Statement abgeschickt. Wird dabei ein passender Satz der Prüftabelle gefunden, so ist die Eingabe zulässig. Andernfalls wird die Eingabe zurückgewiesen.

Für die in der obenstehenden Grafik dargestellte Fremdschlüsseltabelle würde das entsprechende SELECT-Statement folgende Form besitzen:

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

Eine Eingabe in einem Dynpro für das Prüffeld Feld2 ist also nur 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 Strukturlink Flugmodell sind die Buchungen von Flügen durch die Kunden einer 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.

Hierbei muß sichergestellt werden, daß nur korrekte Nummern von Schaltern eingetragen werden können. Alle vorhandenen Verkaufsschalter sind in der Tabelle SCOUNTER eingetragen. Damit kann durch Anlegen eines Fremdschlüssels zum Prüffeld COUNTNUM die notwendige Werteprüfung etabliert werden.

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