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:
Steuerung der Eingabeprüfung
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.
Generische Fremdschlüsselfelder
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.
Konstante Werte
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.
Vererbung
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.
Kardinalität
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:
1
Zu jedem Satz der Fremdschlüsseltabelle muss es genau eine zugeordnete Zeile der Prüftabelle geben.
C
Zu einem Satz der Fremdschlüsseltabelle muss es keine zugeordnete Zeile in der Prüftabelle geben.
Mögliche Werte für m:
1
Zu jeder Zeile der Prüftabelle muss es genau eine zugeordnete Zeile in der Fremdschlüsseltabelle geben.
C
Zu jeder Zeile der Prüftabelle darf es maximal eine zugeordnete Zeile in der Fremdschlüsseltabelle geben..
N
Zu jeder Zeile der Prüftabelle muss es mindestens eine zugeordnete Zeile in der Fremdschlüsseltabelle geben.
CN
Zu jeder Zeile der Prüftabelle darf es beliebig viele zugeordnete Zeilen in der Fremdschlüsseltabelle geben
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.
Art der Fremdschlüsselfelder
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:
keine Schlüsselfelder/-kandidaten
Die Fremdschlüsselfelder
sind weder Primärschlüsselfelder der Fremdschlüsseltabelle noch identifizieren sie einen Satz der Fremdschlüsseltabelle eindeutig.
Schlüsselfelder/-kandidaten
Die Fremdschlüsselfelder
sind entweder Primärschlüsselfelder der Fremdschlüsseltabelle oder identifizieren als Schlüsselkandidaten einen Satz der Fremdschlüsseltabelle eindeutig.
Schlüsselfelder einer Texttabelle
Wenn diese Art der
Fremdschlüsselfelder definiert ist, wird die Fremdschlüsseltabelle als Texttabelle zur
Prüftabelle behandelt. Der Primärschlüssel der Fremdschlüsseltabelle muss
dem der Prüftabelle zuzüglich einem Sprachschlüsselfeld vom Typ LANG entsprechen.
Zu einer Prüftabelle darf es nur eine Texttabelle geben, sonst kommt es zu einer Warnung bei
der Aktivierung. Die Texte einer Texttabelle werden u.a. für Erläuterungen in Eingabehilfen auf (Web) Dynpros verwendet.