Freigeben über


Erstellen von persistenten Beziehungen

Sie können zwischen Tabellen in einer Datenbank persistente Beziehungen erstellen. Persistente Beziehungen sind die in der Datenbank gespeicherten Beziehungen zwischen den Datenbanktabellen. Sie zeichnen sich durch folgende Punkte aus:

Im Gegensatz zu temporären Beziehungen, die mit dem SET RELATION-Befehl erstellt werden, müssen persistente Beziehungen nicht bei jeder Verwendung von Tabellen neu erstellt werden. Weil persistente Beziehungen jedoch nicht die Beziehung zwischen Datensatzzeigern in Tabellen steuern, verwenden Sie beim Entwickeln von Visual FoxPro-Anwendungen sowohl temporäre SET RELATION-Beziehungen als auch persistente Beziehungen.

In Visual FoxPro werden Indizes zum Herstellen persistenter Beziehungen zwischen Tabellen in einer Datenbank verwendet. Persistente Beziehungen werden zwischen Indizes und nicht zwischen Feldern erstellt, wodurch Tabellen, die auf einem einfachen oder komplexen Indexausdruck basieren, zueinander in Beziehung gesetzt werden können.

So bereiten Sie Beziehungen vor

  1. Entscheiden Sie, welche Tabelle die Primärdatensätze und welche die verknüpften Datensätze enthält.

  2. Fügen Sie der Tabelle mit den Primärdatensätzen ein Integer-Feld sowie einen Index für dieses neue Feld hinzu.

  3. Fügen Sie der Tabelle mit den verknüpften Datensätzen ein Feld hinzu, das dem soeben erstellten Primärschlüssel der anderen Tabelle entspricht. Erstellen Sie dann einen einfachen Index für dieses Feld.

    Anmerkung   Verwenden Sie für beide Indizes den gleichen Ausdruck. Wenn Sie beispielsweise im Ausdruck für das Primärschlüsselfeld eine Funktion verwenden, so müssen Sie die gleiche Funktion im Ausdruck für das Fremdschlüsselfeld verwenden.

So erstellen Sie eine persistente Beziehung zwischen Tabellen

  • Klicken Sie im Datenbank-Designer auf den gewünschten Index, und ziehen Sie diesen auf den Indexnamen der verknüpften Tabelle.

    - Oder -

  • Verwenden Sie die Befehle CREATE TABLE oder ALTER TABLE zusammen mit der FOREIGN KEY-Klausel.

Mit dem folgenden Befehl wird z. B. eine persistente 1:n-Beziehung zwischen den Tabellen customer und orders hergestellt, die auf dem Primärschlüssel cust_id der Tabelle customer und dem neuen Fremdschlüssel cust_id der Tabelle orders basiert:

ALTER TABLE orders;
   ADD FOREIGN KEY cust_id TAG ;
      cust_id REFERENCES customer

Wenn Sie anschließend im Datenbank-Designer das Datenbankschema anzeigen, sehen Sie eine Verbindungslinie zwischen orders und customer. Diese Linie stellt die neue persistente Beziehung dar.

Indizes stellen die Grundlage für persistente Beziehungen dar

Die Art der erstellten persistenten Beziehung hängt von dem Indexnamen (Indextag) oder dem Indexschlüssel ab. In einer 1:n-Beziehung muss auf der "1"-Seite der Beziehung ein PRIMARY- oder CANDIDATE-Indexschlüssel und auf der "n"-Seite ein einfacher (regulärer) Indexschlüssel verwendet werden.

Sie können die Beziehung auch bearbeiten.

So bearbeiten Sie eine Beziehung zwischen Tabellen

  • Doppelklicken Sie auf die Beziehungslinie zwischen den Tabellen, und wählen Sie im Dialogfeld Beziehung bearbeiten die entsprechenden Einstellungen aus.

So löschen Sie eine persistente Beziehung zwischen Tabellen

  1. Klicken Sie im Datenbank-Designer auf die Linie, die die Beziehung zwischen den zwei Tabellen darstellt.

    Die Linie wird daraufhin breiter angezeigt, um darauf hinzuweisen, dass die Beziehung ausgewählt wurde.

  2. Drücken Sie ENTF.

    - Oder -

    Verwenden Sie den ALTER TABLE-Befehl zusammen mit der DROP FOREIGN KEY-Klausel.

Mit dem folgenden Befehl wird z. B. eine persistente Beziehung zwischen den Tabellen customer und orders gelöscht, die auf dem Primärschlüssel cust_id der Tabelle customer und dem Fremdschlüssel cust_id der Tabelle orders basiert:

ALTER TABLE orders DROP FOREIGN KEY TAG cust_id SAVE

Siehe auch

Aktualisieren der Verweise zwischen Tabelle und Datenbank | Einrichten der referentiellen Integrität | Erstellen von Datenbanken | Erstellen einer Datenbank | Datenbank-Designer | CREATE TABLE | ALTER TABLE | Arbeiten mit Datenbanken | Arbeiten mit Tabellen