ABAP - Schlüsselwortdokumentation →  ABAP - Dictionary →  Klassische Objekte des ABAP Dictionary →  Datenbanktabellen →  Semantische Eigenschaften von Datenbanktabellen →  Tabellenspezifische semantische Eigenschaften von Datenbanktabellen →  Fremdschlüsselbeziehungen → 

Fremdschlüssel

Ein Fremdschlüssel besteht aus einem oder mehreren Fremdschlüsselfeldern einer Fremdschlüsseltabelle, die Primärschlüssel einer Prüftabelle sind. Zu einer Datenbanktabelle kann es mehrere Fremdschlüssel geben. Zwischen einer Fremdschlüsseltabelle und ihren Prüftabellen besteht eine Fremdschlüsselbeziehung. In der Regel soll es in einer Fremdschlüsseltabelle nur solche Einträge geben, für die der Inhalt des Fremdschlüssels auch genau einmal als Inhalt des Primärschlüssels in der Prüftabelle vorkommt. Darauf muss bei ändernden Zugriffen mit Open SQL selbst geachtet werden.

Fremdschlüssel können folgende Eigenschaften haben:

Bei der Definition des Fremdschlüssels kann ein- und ausgeschaltet werden, ob über eine Fremdschlüsselbeziehung eine Eingabeprüfung für (Web) Dynpros erfolgt. Weiterhin kann dort die Standardnachricht durch eine beliebige Nachricht ersetzt werden. Eventuelle Platzhalter der Nachricht werden beim Senden der Nachricht wie folgt gefüllt: Die ersten drei Platzhalter werden mit den Inhalten der Fremdschlüsselfelder gefüllt, die den ersten drei Schlüsselfeldern der Prüftabelle nach dem Mandantenfeld zugeordnet sind. Der vierte Platzhalter wird mit dem Namen der Prüftabelle gefüllt.
Bei der Definition eines Fremdschlüssels können Fremdschlüsselfelder als generisch gekennzeichnet werden. Generische Fremdschlüsselfelder werden bei einer Eingabeüberprüfung in Dynpros nicht gegen ihre Prüftabelle überprüft.
Bei der Definition eines Fremdschlüssels können Fremdschlüsselfelder mit konstanten Werten zu versehen werden. Bei einer Eingabeüberprüfung in Dynpros muss das einem solchen Fremdschlüsselfeld zugeordnete Feld der Prüftabelle in der durch die übrigen Fremdschlüsselfelder bestimmten Zeile diesen Wert haben.
Die Felder eingebundener Include-Strukturen können Fremdschlüsselfelder sein und tragen zum Fremdschlüssel der Datenbanktabelle bei. Standardmäßig besteht eine Vererbungsbeziehung zur eingebundenen Struktur und Änderungen an der Definition des Fremdschlüssels in der eingebundenen Struktur wirken sich auf den Fremdschlüssel der einbindenden Datenbanktabelle aus. Diese Vererbungsbeziehung kann aufgelöst werden. Dann haben Änderungen an der Definition des Fremdschlüssels in der eingebundenen Struktur keine Auswirkung auf die einbindende Datenbanktabelle mehr.
Zu jedem Fremdschlüssel kann eine Kardinalität n:m definiert werden, die außer bei der Definition von Pflege- und Help-Views aber nur protokollarischen Charakter hat.
Mögliche Werte für n:
Mögliche Werte für m:
Die Definition eines generischen Fremdschlüssels führt dazu, dass die Kardinalitäten 1:m bzw. C:m zu CN:m werden. Zu jeder abhängigen Zeile kann es mehrere Zeilen der Prüftabelle geben. Diese Kardinalität kann aber nicht explizit angegeben werden.
Die Art der Fremdschlüsselfelder kann definiert sein, um die Bedeutung der Fremdschlüsselfelder in der Fremdschlüsseltabelle zu beschreiben. Die möglichen Werte sind, wobei die ersten beiden nur protokollarischen Charakter haben: