4D v16.3

Verknüpfungseigenschaften

Home

 
4D v16.3
Verknüpfungseigenschaften

Verknüpfungseigenschaften  


 

 

Eine Verknüpfung zeichnen Sie immer von der Viele-Tabelle zu der Eine-Tabelle.

Die verknüpften Datenfelder müssen identische oder kompatible Feldtypen haben. Folgende Feldtypen können Sie als Primär- oder verknüpfte Datenfelder einsetzen:

  • String, d.h. Alpha und Text
  • Zahl, d.h. Zahl, Ganzzahl, Lange Ganzzahl, Ganzzahl 64 bit oder Fließkomma
  • Zeit
  • Boolean
  • Datum

Primärschlüsselfelder sind in der Regel indiziert, das ist jedoch nicht zwingend. Die Eigenschaften für die Verknüpfung legen Sie im Inspektorfenster fest. Einige Eigenschaften können Sie auch über das Kontextmenü definieren. Es erscheint durch rechten Mausklick auf die Verknüpfung.

Im Bereich Definition bestimmen Sie die Primärschlüsselfelder und die verknüpften Datenfelder:

  • Von: Das Datenfeld "Von" ist das verknüpfte Datenfeld in der Viele-Tabelle für diese Verknüpfung. Im Kontextmenü lautet es  “Quellfeld.”
  • Zu: Das Datenfeld "Zu" ist das Primärschlüsselfeld in der Eine-Tabelle. Im Kontextmenü lautet es “Zielfeld.” Sie zeichnen die Verknüpfungslinie vom verknüpften Datenfeld in der Viele-Tabelle zum Primärschlüsselfeld in der Eine-Tabelle.
  • Farbe: Hier können Sie eine Farbe für die Verknüpfungslinie im Struktureditor auswählen. Die Farbe der Verknüpfungslinien beeinflusst keine andere Eigenschaft der Verknüpfung.
    Sie können die Farbe auch über das Kontextmenü der Verknüpfung festlegen.

Die Optionen Viele-zu-Eine bestimmen, was passiert, wenn ein Datensatz aus der Viele-Tabelle geöffnet wird:

  • Name: Hier können Sie einen Namen eintragen (optional).
    Hinweis: Bei einem 4D Mobile Link wird mit diesem Namen im Modell auf Wakanda Seite ein entsprechendes relationales Attribut erstellt (siehe Verknüpfungen verwenden im Handbuch 4D Mobile). Dafür müssen die JavaScript Regeln berücksichtigt werden.
  • Manuell/Automatisch: Hier legen Sie fest, ob die Verknüpfung von der Viele-Tabelle zur Eine-Tabelle automatisch oder manuell ist. Haben Sie automatisch gewählt, passiert folgendes: Wird im Anwendungsmodus ein Datensatz aus der Tabelle [Angestellte] geöffnet, wird die verknüpfte Firma in der Tabelle [Firma] auch geöffnet. So erhält der Benutzer Informationen über die Firma, in welcher der Angestellte arbeitet.
    Standardmäßig ist die Option manuell gewählt. Sie müssen dann selbst das Laden und Ausgrenzen des verknüpften Eine-Datensatzes mit Befehlen der Programmiersprache durchführen. Weitere Informationen dazu finden Sie im Abschnitt Automatische und manuelle Verknüpfungen.
    Sie können die Option Automatische Viele-Verknüpfung auch über das Kontextmenü der Verknüpfung festlegen.
  • Automatischer Joker: Ist dieses Optionsfeld aktiv, wird für jeden in das verknüpfte Datenfeld der Viele-Tabelle eingegebenen Wert unsichtbar das Jokerzeichen @ eingesetzt, wenn der Benutzer die Tabulatortaste drückt oder außerhalb des Datenfeldes klickt. Tippt er nur einen Teil ein, sucht 4D nach einem passenden Wert in der verknüpften Eine-Tabelle. Gibt es nur einen passenden Wert, wird die Eingabe vervollständigt. Passen mehrere Werte, zeigt 4D eine Liste mit den möglichen Werten zur Auswahl an.
  • Prüfe ob vorhanden:Ist dieses Optionsfeld aktiv, erscheint ein Dialogfenster, in dem der Benutzer den verknüpften Eine-Datensatz neu anlegen kann, falls er noch nicht vorhanden ist. Tragen Sie einen Wert in ein verknüpftes Datenfeld der Viele-Tabelle ein, überprüft 4D, ob in der verknüpften Eine-Tabelle ein passender Datensatz vorhanden ist. Ist das nicht der Fall, erscheint folgendes Dialogfenster:


    So kann der Benutzer einen passenden Datensatz in der Eine-Tabelle zum Datensatz in der Viele-Tabelle anlegen.
    Nehmen wir z.B. an, Sie haben eine Datenbank für Rechnungen mit einer Tabelle [Rechnung] und einer Tabelle [Kunden]. Geben Sie in die Tabelle [Rechnung] eine Rechnung ein und der dazugehörige Kunde ist in der Tabelle [Kunden] noch nicht angelegt, fragt 4D beim Bestätigen des Datensatzes in der Tabelle [Rechnung], ob Sie den noch nicht vorhandenen Datensatz in der Tabelle [Kunden] erstellen wollen.
    Soll dieses Dialogfenster nicht erscheinen, deaktivieren Sie das Optionsfeld Prüfe ob vorhanden. Das ist sinnvoll, wenn Sie das Erstellen des verknüpften Eine-Datensatzes über eine Methode steuern.
  • Joker-Auswahlliste
    In der Liste der Joker-Felder können Sie ein zusätzliches Feld auswählen, das in der Liste der Werte erscheint und zwar, wenn der Benutzer bei der Dateneingabe in das verknüpfte Feld den Joker eingibt.
    Das funktioniert folgendermaßen: Der Benutzer kann sich Werte in der Eine-Tabelle Werte ansehen, während er Daten in das verknüpfte Datenfeld der Viele-Tabelle eingibt. Hierzu verwendet er einfach im verknüpften Datenfeld das Jokerzeichen @. 4D sucht dann in der verknüpften Eine-Tabelle nach der entsprechenden Eingabe.
    Sie können das Jokerzeichen auf zweierlei Art einsetzen: Um eine Teileingabe zu vervollständigen oder um eine Liste gültiger Eingaben anzuzeigen. Wenn die Liste angezeigt wird, kann der Benutzer die Eingabe aus der Liste wählen. Zum verknüpften Datenfeld kann ein zusätzliches Feld, das Joker Auswahlfeld, angezeigt werden.
    Nehmen wir z.B. an, der Benutzer erstellt einen Datensatz in der Tabelle [Angestellte]. Anstatt in das Firmenfeld Anton GmbH zu schreiben, tippt der Benutzer A@ und drückt die Tabulatortaste, um in das nächste Datenfeld zu gehen. Da @ bei 4D das Jokerzeichen ist, bedeutet diese Eingabe "Dieser Wert beginnt mit "A", gefolgt von irgend etwas".
    4D sucht in der verknüpften Tabelle nach dem Datensatz, der zu dieser Eingabe passt. Wird ein Datensatz gefunden, vervollständigt es die Eingabe und wählt das nächste Datenfeld in der Reihenfolge der Dateneingabe.
    Die folgende Abbildung zeigt, wie sich der Einsatz des Jokers auswirkt


    Findet 4D mehr als einen Eintrag, zeigt es eine Liste der Einträge, unter denen der Benutzer den richtigen auswählen kann. Die folgende Abbildung zeigt eine solche Liste:


    Sie können als Hilfe für den Benutzer, welche Firma er wählen soll, ein zweites Datenfeld der Liste festlegen. Dieses zweite Datenfeld ist das Datenfeld der Joker-Auswahlliste, das Sie in der Inspektorpalette beim Erstellen der Verknüpfung festgelegt haben.
    Nachfolgende Abbildung zeigt eine Liste von Firmen, in der Firmenname und Ort angezeigt werden. Dieses Joker-Auswahlfeld hilft dem Benutzer, der beispielsweise nicht weiß, ob die Firma Adams oder Akon heißt, sich aber erinnert, dass die Firma in München ansässig ist.
    Um eine Liste aller Firmen aus der Tabelle [Firma] anzuzeigen, gibt der Benutzer nur @ ein. 4D zeigt dann eine Liste aller Firmen, und der Benutzer kann die korrekte Firma wählen:


    Sie können das Auswahlfenster auch vergrößern oder verkleinern.

Die Option Eine-zu-Viele steuert automatische Verknüpfungen in die andere Richtung.

  • Name:Hier können Sie einen Namen eintragen (optional).
    Hinweis: Bei einem 4D Mobile Link wird mit diesem Namen im Modell auf Wakanda Seite ein entsprechendes relationales Attribut erstellt (siehe Verknüpfungen verwenden im Handbuch 4D Mobile). Dafür müssen die JavaScript Regeln berücksichtigt werden.
  • Manuell/Automatisch: Hier legen Sie fest, ob die Verknüpfung von der Eine-Tabelle zur Viele-Tabelle automatisch oder manuell ist. Haben Sie automatisch gewählt, wird automatisch die Verknüpfung hergestellt. Wird z.B. ein Datensatz der Tabelle [Firma] im Anwendungsmodus geöffnet, werden die verknüpften Datensätze der Tabelle [Angestellte] geladen.
    So kann 4D die Datensätze der Angestellten, die für diese Firma arbeiten, in einem Unterdatensatz anzeigen.
    Standardmäßig ist die Option manuell eingestellt. Weitere Informationen dazu finden Sie im Abschnitt Automatische und manuelle Verknüpfungen. Sie können die Option Automatische Verknüpfung auch über das Kontextmenü der Verknüpfung festlegen.
  • Automatische Wertübertragung: Mit dieser Option können Sie den Wert des Primärschlüsselfeldes in der Eine-Tabelle bei der Dateneingabe automatisch dem verknüpften Datenfeld in der Viele-Tabelle zuweisen. Diese Option ist nur sinnvoll, wenn für die zurückgehende Verknüpfung die Option automatisch gewählt wurde.
    Diese Option beeinflusst die Dateneingabe, wenn ein Eingabeformular in einer Eine-Tabelle ein Unterformular in einer Viele-Tabelle hat. Weitere Informationen dazu finden Sie im Abschnitt Unterformulare und Widgets. Ist Automatische Wertübertragung aktiviert, kann der Benutzer in einem Unterformular Daten hinzufügen, d.h. in der verknüpften Viele-Tabelle, die dann den Datenfeldern der verknüpften Tabelle automatisch zugewiesen werden.
    In der Verknüpfung zwischen der Tabelle [Firma] und der Tabelle [Angestellte] ist [Firma] die Eine-Tabelle und [Angestellte] eine verknüpfte Viele-Tabelle. Für jede Firma gibt es einen Datensatz in der Tabelle [Firma] und mehrere Datensätze in der Tabelle [Angestellte]. Erscheint das Primärschlüsselfeld der Viele- Tabelle im Unterformular, können Sie die Auswirkung dieser Option betrachten: Der Feldwert erscheint bei jedem Hinzufügen eines Unterdatensatzes automatisch im Unterformular:


    Die Option funktioniert aber auch, wenn das Fremdschlüsselfeld der verknüpften Tabelle nicht im Unterformular erscheint. Dann wird der Wert intern kopiert. Sie können das überprüfen, wenn Sie in den Seitenmodus gehen.
    Ist die Option Automatische Wertübertragung nicht markiert, werden die erstellten Unterdatensätze nicht  automatisch dem passenden Datensatz in der Viele-Tabelle zugeordnet. In diesem Fall müssen Sie den Unterdatensatz selbst verknüpfen:  
    • Manuell, wenn das Schlüsselfeld angezeigt wird: Im obigen Beispiel genügt es, im Datenfeld Firma jedes Unterdatensatzes den Namen „4D Deutschland GmbH“ einzugeben
    • Per Programmierung: Sie führen beim Erstellen des Unterdatensatzes folgenden Code aus
       TableN]Field1:=[Table1]Field1
       
    Hinweis: Ändern Sie in der Eine-Tabelle den verknüpften Feldwert, nachdem Sie diesen in der Viele-Tabelle erstellt haben, hat Automatische Wertübertragung keinen Einfluss. Sie müssen dann das verknüpfte Datenfeld entweder manuell oder per Programmierung zuweisen.

Die Optionen der Löschkontrolle regeln das Löschen von Datensätzen in der Viele-Tabelle, wenn Sie in der Eine-Tabelle einen Datensatz löschen. Im Normalfall kann der Benutzer in einer Tabelle keine Datensätze löschen, wenn diese Tabelle nicht die aktuelle Tabelle ist. Dies bedeutet z.B. wenn Sie in der Tabelle [Angestellte] Datensätze löschen wollen, müssen Sie diese erst zur aktuellen Tabelle machen. Hierzu wählen Sie die Tabelle in der Tabellenliste im Designmodus.

  • Viele verknüpfte unverändert lassen: Ist diese Option aktiv, kann der Benutzer in der Eine-Tabelle einen Datensatz löschen, während die entsprechenden Datensätze in der Viele-Tabelle erhalten bleiben. Dies behält Datensätze in der Viele-Tabelle ohne einen entsprechenden Datensatz in der Eine-Tabelle bei. Damit sind Informationen aus der Eine-Tabelle nicht mehr verfügbar. In der Eine-Tabelle wird kein Datensatz geladen, wenn ein entsprechender Datensatz in der Viele-Tabelle zu diesem gelöschten Datensatz geladen wird.
  • Viele verknüpfte löschen: Ist diese Option aktiv, löscht 4D automatisch alle verknüpften Datensätze in der Viele-Tabelle, wenn der Benutzer einen Datensatz in der Eine-Tabelle löscht. Diese Eigenschaft stellt sicher, dass keine Datensätze in der Viele-Tabelle "verwaisen", wenn der entsprechende Datensatz in der Eine-Tabelle gelöscht wird.
  • Nicht löschen, wenn viele verknüpfte existieren: Ist diese Option aktiv, erlaubt 4D dem Benutzer nicht, einen Datensatz in der Eine-Tabelle zu löschen, wenn verknüpfte Datensätze in der Viele-Tabelle bestehen. Diese Eigenschaft stellt sicher, dass Datensätze nicht fälschlich gelöscht werden. Bitte beachten Sie, dass Sie in der Viele-Tabelle Datensätze löschen können, gleichgültig, welche Option Sie wählen.

Die Optionsfelder Viele verknüpfte löschen und Nicht löschen, wenn viele verknüpfte existieren verstärken die in der Datenbanktheorie sogenannte referentielle Integrität. Sobald diese besteht, stellt 4D sicher, dass jeder Datensatz in einer verknüpften Viele-Tabelle genau einem Datensatz in der verknüpften Eine-Tabelle zugeordnet wird.

Wenn Sie mit mehreren verknüpften Tabellen arbeiten, wird die Löschkontrolle wie in einer Kette für jede Verknüpfung gesetzt. Nehmen wir an, Sie haben z.B. die unten gezeigte Struktur. Wenn Sie in der Tabelle [LKZ], d.h. einer Eine-Tabelle, ein Landeskürzel löschen, und für jede Verknüpfung Viele verknüpfte löschen gewählt haben, löscht 4D zuerst die Datensätze der entsprechenden Firmen in der Tabelle [Firma] und anschließend die Datensätze aller Angestellten in der Tabelle [Angestellte], die in dieser Firma arbeiten.

Wenn 4D widersprüchliche Einstellungen für die Löschkontrolle feststellt, lässt es Löschen nicht zu. Wenn Sie z.B. für die Verknüpfung zwischen der Tabelle [Firma] mit der Tabelle [LKZ] Viele verknüpfte löschen gewählt haben, für die Verknüpfung zwischen der Tabelle [Angestellte] und der Tabelle [Firma] aber Nicht löschen, wenn viele verknüpfte existieren, erfolgt kein Löschen und die Datensätze in der Tabelle [Firma] und der Tabelle [Angestellte] bleiben bestehen.

SQL  

Der Bereich SQL der Inspektorpalette zeigt Informationen, die beim Bearbeiten der Struktur mit der SQL Programmiersprache hilfreich sind. Für Verknüpfungen erscheinen die Eigenschaften FOREIGN KEY und REFERENCES.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankstruktur erstellen

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Designmodus ( 4D v16)
4D Designmodus ( 4D v16.1)
4D Designmodus ( 4D v16.3)