4D v16.3

Tabelleneigenschaften

Home

 
4D v16.3
Tabelleneigenschaften

Tabelleneigenschaften  


 

 

Sie können die Tabelleneigenschaften über das Inspektorfenster definieren. Bestimmte Eigenschaften lassen sich auch das Kontextmenü für Tabellen festlegen.

Trigger  

Ein Trigger ist eine automatisch ablaufende Methode, sobald bestimmte Ereignisse in der Tabelle auftreten. Solche Ereignisse sind:

  • On saving new record
  • On saving an existing record
  • On deleting record

Trigger-Ereignisse können Sie im Inspektorfenster oder über das Kontextmenü der Tabelle einrichten (rechter Mausklick in den Tabellentitel):

Markieren Sie die Ereignisse, für die Sie einen Trigger aktivieren wollen.

Sie können direkt im Struktureditor auf Trigger zu einer Tabelle zugreifen, wenn Sie im Inspektor die Schaltfläche Bearbeiten, im Kontextmenü den Eintrag Methode bearbeiten wählen. Weitere Informationen dazu finden Sie im Handbuch 4D Programmiersprache im Abschnitt Methodenarten.

Hinweise:

  • Sie können Trigger auch im Explorer auf der Seite Methoden des Explorer einrichten und anzeigen
  • Die Informationsleiste im Struktureditor zeigt an, welche Trigger für eine Tabelle aktiviert sind

Trigger, die Sie im Methodeneditor eingegeben haben, laufen nur, wenn die von Ihnen bestimmten Ereignisse auftreten.

Sie können verschiedene Attribute zuweisen, um die Darstellung und das allgemeine Verhalten einer Tabelle festzulegen. 

Die Option „Unsichtbar“ blendet eine Tabelle im Anwendungsmodus und für Plug-Ins aus. Aktivieren Sie diese Option für
Hilfstabellen oder Tabellen, die zeitweise nicht benutzt werden. Auf diese Weise können Sie auch steuern, welche Operationen ein Benutzer in einer Tabelle durchführen kann. Sie blenden die Tabelle und ihre Datenfelder in allen Editoren und einigen Dialogfenstern des Anwendungsmodus oder für Plug-Ins aus. Dazu gehören:

In keinem dieser Editoren kann der Benutzer die Tabelle oder eines ihrer Datenfelder sehen oder anwählen. Der Benutzer kann z.B. keine Datenfelder einer ausgeblendeten Tabelle in einen Schnellbericht oder ein Etikett setzen.

Hinweis: Wenn Benutzer diese Editoren einsetzen, können sie ihre Spezifikationen in Dateien auf der Platte speichern, z.B. Kriterien einer Suche oder Sortierung. Dafür werden auch unsichtbare Tabellen oder Datenfelder verwendet. Außerdem können Benutzer die Namen von ausgeblendeten Tabellen und Datenfeldern in das Dialogfenster eingeben.

Im Designmodus erscheinen ausgeblendete Tabellen und Datenfelder im Fenster des Struktureditors kursiv.

Sie können für jede Tabelle eine Farbe festlegen. Mit Farben machen Sie die Struktur umfangreicher Datenbanken übersichtlicher. Sie können z.B. eine Farbe für alle Tabellen zu Kunden definieren und eine andere für Tabellen zu Artikeln.

Hinweis: Sie können auch jedem Feld oder jeder Verknüpfung eine Farbe zuweisen (siehe Abschnitt Definition).

Wählen Sie eine oder mehrere gewünschte Tabellen aus und weisen eine Farbe zu. Diese können Sie folgendermaßen aufrufen:

  • In der Werkzeugpalette des Editors mit der Schaltfläche Farbe
  • Im Kontextmenü der Tabellen mit dem Eintrag Farbe,
  • Im Inspektorfenster mit der Option Farbe.

Die Option Automatik stellt wieder die ursprüngliche Farbe der Tabelle her.

Mit dieser Option können Sie das Löschen einer Datensatzauswahl optimieren, die über den 4D Befehl DELETE SELECTION erstellt wurde.
Wenn 4D eine Auswahl löscht, werden auch die Datensatz-Marker gelöscht. Ein Marker ist ein dem Datensatz zugewiesener Kopfteil mit Informationen zu diesem Datensatz. Das Löschen von Markern und Datensätzen ist langsamer als nur Datensätze löschen. In bestimmten Fällen ist es wünschenswert, nicht automatisch die Datensatz-Marker zu löschen.
Diese Option ermöglicht, die gewünschte Löschart zu wählen. Um das Löschen einer umfangreichen Auswahl über den 4D Befehl DELETE SELECTION zu beschleunigen, deaktivieren Sie die Option Datensätze definitiv löschen. Dann werden die Datensatz-Marker nicht gelöscht. Diese Option lässt sich nicht per Programmierung setzen.

Ist diese Option markiert, erzeugt 4D die erforderliche Information zur Replizierung der Datensatze der Tabelle (Sie basiert insbesondere auf dem Primärschlüssel der Tabelle). Damit lassen sich Daten zwischen zwei oder mehr 4D Anwendungen synchronisieren.

Ist die Option aktiv, muss der Mechanismus zur Replikation über spezifische Befehle der SQL Programmiersprache in 4D implementiert werden. Weitere Informationen dazu finden Sie im Handbuch 4D SQL Reference im Abschnitt Replication via SQL. Weitere Informationen zur Replikation mit HTTP finden Sie im Handbuch 4D Programmiersprache im Abschnitt URL 4DSYNC/.

Diese Option ist standardmäßig nicht markiert. Damit sie verfügbar wird, müssen Sie einen Primärschlüssel für die zu replizierende Tabelle definieren. Andernfalls ist die Option in Grauschrift. Den Primärschlüssel setzen Sie direkt im Struktureditor (siehe unten).

Diese Option steuert, ob die Tabelle für 4D Mobile Anfragen, die an die 4D Datenbank gesendet werden, zugänglich ist. Standardmäßig sind alle Tabellen in 4D Mobile veröffentlicht.
Aus Sicherheitsgründen wollen Sie aber nur bestimmte Tabellen Ihrer Datenbank für 4D Mobile Aufrufe veröffentlichen. Sie wollen z.B. die Tabelle [Benutzer], die Namen und Kennwörter speichert, nicht veröffentlichen.

Wollen Sie eine Tabelle bzw. alle darin enthaltenen Felder nicht veröffentlichen, deaktivieren Sie die Option Mit 4D Mobile Service veröffentlichen für die Tabelle.

Hinweis: Sie können diese Option auch für ein einzelnes Feld der Tabelle setzen, siehe Feldeigenschaften.

Diese Option lässt sich im Rahmen der "4D Mobile" Funktionalität verwenden. Weitere Informationen dazu finden Sie im Handbuch 4D Mobile.

Diese Option ist standardmäßig für jede neu angelegte Tabelle und für alle Tabellen in konvertierten Datenbanken markiert. Diese Option sollte für die Tabellen in der Regel markiert sein. Für temporäre Tabellen oder alles was keine Überwachung benötigt, können Sie die Option deaktivieren und so die Größe des Logbuchs verringern.

Hinweis: Die Option erscheint in Grauschrift, wenn die Tabelle keinen Primärschlüssel hat.

Bitte beachten Sie, dass diese Option nur angibt, dass die Daten der Tabelle protokolliert werden sollen; sie aktiviert nicht das Führen des Logbuchs selbst auf Strukturebene (siehe Logbuch verwalten).

Warnung  

4D zeigt rechts neben der Option In Journal aufnehmen ein Warn-Icon, wenn die erforderlichen Bedingungen nicht erfüllt sind:

Solange es erscheint, ist kein Logbuch aktiviert. Ziehen Sie die Maus über das Icon, erscheint eine Erläuterung zur Warnung

Es gibt folgende Meldungen:

MeldungUrsacheErforderliche Korrektur
Warte auf Festlegung eines PrimärschlüsselsIOperationen lassen sich nicht protokollieren, wenn die Tabelle keinen Primärschlüssel hatIn der Tabelle einen Primärschlüssel per SQL erstellen oder das Kontextmenü der Tabelle nutzen
Warte auf Korrigieren der Werte des PrimärschlüsselsWerte des Primärschlüssels wurden geprüft und Anomalien festgestelltDuplikate oder Nullwerte in den Datensätzen für das Feld entfernen (oder einen anderen Primärschlüssel nutzen)
Warte auf Aktivierung des Logbuch auf DatenbankebeneDie globale Option zum Aktivieren des Logbuchs ist nicht markiertDie Option ’Benutze Logbuch’ in den Datenbank-Eigenschaften auf der Seite Backup>Konfiguration prüfen

Im Bereich Kommentar des Inspektorfenster können Sie zusätzliche Information zur Tabelle ablegen. Diese Kommentare sind für alle Entwickler zugänglich.
Beachten Sie, dass jedes Feld und jede Verknüpfung einen eigenen Kommentarbereich hat.

SQL  

Der Bereich SQL des Inspektorfenster enthält das PopUp-Menü Schemas und einen Informationsbereich.

  • Das Menü Schemas listet alle SQL Schemas auf, die in der Datenbank spezifiziert sind. Über dieses Menü können Sie das Schema setzen, zu dem die Tabelle gehören soll (Sie können diese Eigenschaft auch über SQL Befehle ändern). Jede Datenbank hat mindestens ein Schema mit Namen DEFAULT_SCHEMA. Standardmäßig gehören alle Tabellen zu diesem Schema. Weitere Informationen dazu finden Sie im Handbuch 4D SQL Reference unter Schemas.
  • Der Informationsbereich gibt an, ob der Name der Tabelle für SQL nicht-erlaubte Zeichen enthält. SQL erlaubt z.B. im Gegensatz zu 4D keine Namen mit Leerzeichen.

Ein Primärschlüssel gibt die Felder zur eindeutigen Identifizierung der Datensätze in einer Tabelle an. Das ist insbesondere für die Funktionalität Datensatz Replikation in einer 4D Tabelle (siehe Replication via SQL) und zum Protokollieren der Daten (siehe Logbuch verwalten) notwendig.

Sie können Primärschlüssel direkt über das Kontextmenü des Struktureditors erstellen, bearbeiten und entfernen.

Hinweis: Primärschlüssel lassen sich auch in der SQL Sprache über die Klausel PRIMARY KEY, gefolgt von der Liste der Spalten, setzen (siehe Primary key im Handbuch 4D SQL Reference).

Felder mit Primärschlüssel sollten mit Bedacht verwaltet werden, um jederzeit die Datenintegrität zu gewährleisten. Sie müssen insbesondere folgende Regeln einhalten:

  • sie dürfen nicht leer sein
  • sie müssen einmalig sein
  • einmal angelegt, sollten sie prinzipiell nie verändert werden, besonders wenn:
    • 4D Features zur Replikation oder Synchronisation aktiviert sind
    • 4D Mobile (oder ähnlich) aktiviert ist
    • die Logbuch-Funktion der Anwendung aktiviert ist (Backup oder logisches Spiegeln über das Logbuch)
    • Primärschlüssel zur Kommunikation oder Synchronisation mit externen Systemen verwendet werden.

Wir raten generell davon ab, Primärschlüssel zu verändern, selbst wenn 4D das für spezifische Fälle erlaubt. Wenn Sie dennoch Ihr Feld mit Primärschlüssel verändern müssen, ist es besser, stattdessen ein neues Feld mit Primärschlüssel mit automatischer Zuweisung anzulegen.

Felder mit Primärschlüssel können vom Typ Lange Ganzzahl oder im UUID Format (alphanumerisch) sein. Für die meisten Fälle ist das UUID Format mit aktivierter Option Auto UUID besser geeignet. Denn UUIDs haben viele Vorteile, auch wenn der Typ Lange Ganzzahl weniger Speicherplatz benötigt. Sie vereinfachen z.B. das Zusammenlegen voneinander unabhängigen Anwendungen, den Datenimport und -export, die Implementation von Spiegel / Replikation Strategien oder die Synchronisation mit externen Systemen.

Um einen Primärschlüssel im Struktureditor zu erstellen:

  1. Wählen Sie das bzw. die Felder für den Primärschlüssel der Tabelle aus.
  2. Klicken Sie mit der rechten Maustaste und wählen im Kontextmenü den Eintrag Primärschlüssel erzeugen. Dieser Menübefehl ist nur für Primärschlüssel passende Feldtypen aktiv:


    Pro Tabelle ist immer nur ein Primärschlüssel möglich. Ist bereits ein Primärschlüssel angegeben, erscheint eine Fehlermeldung, dass zuerst der vorhandene Primärschlüssel deaktiviert wird.

Der Primärschlüssel wird sofort angelegt. Die im Primärschlüssel enthaltenen Felder erscheinen im Editor unterstrichen, die SQL Beschreibung zeigt das PRIMARY KEY Schlüsselwort.

Erstellen Sie einen Primärschlüssel in einer Tabelle, die bereits Datensätze enthält (in einem neuen oder vorhandenen Feld), prüft 4D die Konformität aller Werte oder führt automatisch Operationen zur Aktualisierung durch: 

  • Das bzw. die Felder, die zum Primärschlüssel gehören, dürfen keine doppelten Werte enthalten. Bei doppelten Werten in den Datensätzen der Tabelle erscheint eine Fehlermeldung, dass sich aus diesem Grund kein Primärschlüssel anlegen lässt.
  • Sind die duplizierten Werte leer oder Nullwerte (bei hinzugefügtem Schlüsselfeld), können Sie die entsprechende Option zum automatischen Generieren prüfen: für Felder vom Typ Alpha in oder für Felder vom Typ Lange Ganzzahl. In diesem Fall prüft 4D alle Datensätze der Tabelle und weist jedem Primärschlüssel automatisch einen berechneten Wert zu. Beachten Sie, dass dieser Prozess sequentiell ist und bei einer größeren Anzahl Datensätze eine Zeit lang dauert.

Hinweis: Die Spalten im Primärschlüssel akzeptieren keine NULL Werte.

Um einen Primärschlüssel aus einer Tabelle zu entfernen:

  1. Klicken Sie mit der rechten Maustaste auf die Tabelle mit dem Primärschlüssel und wählen im Kontextmenü den Eintrag Primärschlüssel entfernen:

Auf dem Bildschirm erscheint ein Dialogfenster zum Bestätigen. Klicken Sie auf die Schaltfläche OK, um den Primärschlüssel zu entfernen.

In 4D v14 erhält jede neu erstellte Tabelle in der Struktur standardmäßig einen Primärschlüssel:

Dieses Feld heißt standardmäßig "ID", ist vom Typ Lange Ganzzahl und hat folgende Attribute:

  • Einmalig
  • Eingabe von NULL Werten verweigern
  • Autoincrement,
  • Automatischer Index

Hinweis: Auf der Seite Struktur der 4D Einstellungen können Sie Name und Typ der standardmäßig angelegten Primärschlüssel verändern.

Sie können dieses Feld so verwenden oder bei Bedarf Name bzw. Eigenschaften verändern, wenn Sie z.B. ein UUID Feld verwenden wollen. Sie können es auch löschen, um ein anderes Feld bzw. Felder als Primärschlüssel einzusetzen.
Sie müssen jedoch in jeder 4D Tabelle mindestens einen Primärschlüssel beibehalten.

Hinweis: Tabellen, die in die Datenbank importiert werden oder mit dem Befehl CREATE TABLE erstellt wurden, erhalten keine standardmäßigen Primärschlüssel.



Siehe auch 

Feldeigenschaften

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datenbankstruktur erstellen

 
GESCHICHTE 

 
SCHLÜSSELWÖRTER 

primary key, replication

 
ARTIKELVERWENDUNG

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