Zum Inhalt springen

Einführung in App Builder - Anhang A: Die Datenschicht in App Builder (Fortgeschrittene)

Dies ist der erste Anhang der Einführung in App Builder-Tutorialserie. Diese Anhänge ergänzen die Lektionen der Serie und bieten tiefere Informationen zu den eingeführten Konzepten.

In dieser Lektion werden wir die Datenschicht von App Builder weiter erkunden – den Bereich, in dem wir die Daten speichern, die unsere Anwendung abrufen und bearbeiten muss.

Logische Datentypen

Wie wir bereits gelernt haben, ist die Datenschicht der Ort, an dem wir die Informationen speichern, die unsere Anwendungen für ihre Aufgaben benötigen. App Builder bietet Tools zum logischen Organisieren, Kategorisieren und Kennzeichnen Ihrer Daten, um zukünftige Abrufe einfacher und effizienter zu gestalten.

Logische vs. physische Datentypen

Bevor wir jeden Typ untersuchen, ist es wichtig, die grundlegende Unterscheidung zwischen logischen und physischen Datentypen zu verstehen, da dieses Konzept auf alle in App Builder erstellten Spalten zutrifft.

  • Logische Datentypen: Diese definieren den Zweck der Daten und ihre Darstellung in den Business- und Benutzeroberflächenschichten (UI) der Anwendung. Der logische Typ bestimmt, wie App Builder die Daten anzeigt und welche Operationen dafür gültig sind.

  • Physische Datentypen: Diese definieren den Speichertyp der Daten – das spezifische Format, das zum Speichern der Informationen in der Datenbank verwendet wird.

Betrachten Sie beispielsweise die Werte 0 und 1. Diese beiden Werte können je nach Kontext auf mehrere verschiedene logische Arten dargestellt werden:

  • Als boolescher Wert (dargestellt als True/False)

  • Als Zahl (die Ganzzahlen 0 und 1)

  • Als Text (die Zeichen 0 und 1)

  • Als Prozentsatz (dargestellt als 0% und 100%)

  • Als Währung (dargestellt als $0,00 und $1,00)

Jeder dieser logischen Typen wird von der Anwendung unterschiedlich behandelt, auch wenn die zugrunde liegenden Daten ähnlich sind. Entsprechend können diese Werte physisch in verschiedenen Formaten gespeichert werden. Ein boolescher Wert False/True könnte als Bit (0/1) gespeichert werden, während der Text 0/1 als NVarchar gespeichert würde.

Wenn wir die Datentypen unten erkunden, werden Sie sehen, dass App Builder für jeden ausgewählten logischen Typ eine oder mehrere kompatible physische Typoptionen bereitstellt.

Eindeutige ID

Der logische Datentyp Eindeutige ID wird zum Speichern eines eindeutigen Identifikatorwerts verwendet. In Lektion 2 haben wir diesen Datentyp kurz erwähnt, als wir die Tabelle Region erstellten. Wir erwähnten, dass App Builder automatisch eine Spalte zum Identifizieren der Einträge in dieser Tabelle erstellte und ihr diesen Datentyp zuordnete. Schauen wir uns jetzt aber genauer an, wie es funktioniert. Führen Sie diese Schritte aus:

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Kategorie und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Spalten die Spalte CategoryID und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Sie sehen den folgenden Bearbeitungsbildschirm:

    Bearbeitungsbildschirm der Spalte CategoryID

  3. Beachten Sie im Abschnitt Datentypen die folgenden Details:

    • Das Feld Logisch ist der Ort, an dem Sie den logischen Datentyp einer Spalte definieren. Diese Spalte wurde automatisch von App Builder erstellt und hat den Typ Eindeutige ID ausgewählt.

    • Das Feld Physisch zeigt die für eine Spalte mit diesem logischen Datentyp verfügbaren physischen Datentypen:

      1. Char: Zeichendaten mit fester Länge.

      2. UUID (derzeit ausgewählt): Dieses Akronym steht für Universally Unique Identifier. Es ist eine 128-Bit-Zahl zur eindeutigen Identifizierung von Informationen.

  4. Im Abschnitt PK-Einstellungen sind die folgenden Kontrollkästchen verfügbar. App Builder hat alle aktiviert, was die empfohlene Einstellung beim Erstellen eines einspaltigen Primärschlüssels mit einem automatisch generierten Wert ist. Bei komplexeren Szenarien, wie mehrteiligen Schlüsseln (z. B. ein Schlüssel aus zwei Fremdschlüsseln), könnten Sie unterschiedliche Einstellungen verwenden:

  5. Primärschlüssel: Dieses Kontrollkästchen gibt an, ob eine Spalte der Primärschlüssel ihrer Tabelle sein soll, also diejenige, die einen Datensatz eindeutig macht.

  6. Automatisch generiert: Wenn dieses Kontrollkästchen aktiviert ist, generiert App Builder automatisch einen Wert für diese Spalte jedes Mal, wenn ein neuer Datensatz in der Tabelle erstellt wird.

  7. Erforderlich: Dieses Kontrollkästchen gibt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (also einen Nullwert haben kann).

  8. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies zeigt App Builder an, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Verwendung). Derzeit gibt es hier keine Auswahl, da der Zweck einer eindeutigen Kennung darin besteht, dass App Builder und nicht Benutzer oder Entwickler einen Datensatz identifizieren können.

    2. Standardwert: Dieses Feld ist derzeit leer und hier könnten Sie einen Standardwert für die Spalte definieren (weitere Informationen finden Sie unter Standardwerte). Bei automatisch generierten Werten wird jedoch immer ein Wert bereitgestellt.

String

Schauen wir uns nun String an, wahrscheinlich den am häufigsten verwendeten logischen Datentyp. Damit lässt sich eine Zeichenfolge variabler Länge speichern, z. B. Buchstaben, Symbole und Zahlen. Werfen wir einen genaueren Blick auf eine unserer Spalten, die diesen Datentyp verwendet:

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Employee und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Spalten die Spalte FirstName und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Das Bearbeitungsbildschirm der Spalte wird angezeigt:

    Bearbeitungsbildschirm der Spalte „FirstName"

  3. Im Bereich Datentypen werden die folgenden Optionen angezeigt:

    1. Das Feld Logisch ist der Ort, an dem dieser Spalte der logische Datentyp String zugewiesen wurde.

    2. Das Feld Physisch hat die folgenden Optionen:

      1. Char: Zeichendaten mit fester Länge.

      2. Verschlüsselter Text: Verschlüsselte Textdaten.

      3. NChar: UNICODE-Zeichendaten mit fester Länge.

      4. NVarchar (derzeit ausgewählt): UNICODE-Zeichendaten mit unbestimmter Länge. Normalerweise werden alle App Builder-Strings als dieser physische Typ gespeichert, damit sie Unicode unterstützen und weniger Platz beanspruchen.

      5. Varchar: Zeichendaten mit unbestimmter Länge.

    3. Länge: Anzahl der Bytes, die zum Speichern der Zahl verwendet werden. Bei binären, varbinary- und image-Datentypen ist die Länge die Anzahl der Bytes.

  4. Im Bereich PK-Einstellungen gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primärschlüssel: Dieses Kontrollkästchen gibt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Erforderlich: Dieses Kontrollkästchen gibt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (also einen Nullwert haben kann).

  5. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies zeigt App Builder an, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Verwendung). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Standardwert: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (weitere Informationen finden Sie unter Standardwerte).

    3. Übersetzbar: Wenn diese Option aktiviert ist, aktiviert dieses Kontrollkästchen Übersetzungen für eine bestimmte Spalte. Das bedeutet, dass Daten in der Spalte, die über die Geschäftsebene hinzugefügt oder bearbeitet werden, zur Laufzeit automatisch in eine andere Sprache übersetzt werden. Das Übersetzen des Anwendungspakets übersetzt auch alle Daten in der Spalte.

Datum, Datum/Uhrzeit, Uhrzeit

Dies sind die Formate, die App Builder verwendet, um ein bestimmtes Datum, eine Uhrzeit oder beides zu speichern. Die Datumsinformation wird als MM/DD/YYYY formatiert. Wenn Sie versuchen, ein Feld mit diesem logischen Datentyp zu bearbeiten, wird ein Kalender-Popup angezeigt, mit dem Sie einen neuen Datumswert auswählen können.

Schauen wir uns genauer an, wie dieser Datentyp funktioniert, indem wir die Spalte BirthDate in unserer Tabelle Employee analysieren.

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Employee und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Columns die Spalte BirthDate und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Das Bearbeitungsbildschirm der Spalte wird angezeigt:

    BirthDate column edit screen

  3. Im Bereich Data Types werden die folgenden Felder angezeigt:

    1. Logical: Hier wählen Sie entweder Date, Date/Time oder Time aus.

    2. Physical: Die Optionen für den physischen Datentyp ändern sich je nach Ihrer Auswahl des logischen Datentyps:

      1. Wenn der logische Datentyp Date ist:

        1. Date: Speichert nur das Datum.

        2. Decimal: Speichert einen Dezimalwert zwischen 1038 + 1 und 1038 - 1.

        3. Integer - Int: Speichert eine ganze Zahl zwischen -2,147,483,648 und 2,147,483,647.

      2. Wenn der logische Datentyp Date/Time ist:

        1. DateTime: Speichert das Datum und die Tageszeit.
      3. Wenn der logische Datentyp Time ist:

        1. Time: Speichert nur die Tageszeit.
  4. Im Bereich PK Settings gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primary Key: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Required: Dieses Kontrollkästchen zeigt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (d. h. einen Nullwert haben kann).

  5. Im Bereich Advanced werden die folgenden Optionen angezeigt:

    1. Column Usage Type: Dies zeigt dem App Builder an, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Usage). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Default Value: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (weitere Informationen finden Sie unter Default values).

Photo

Ein weiterer logischer Datentyp, der in der App Builder-Datenschicht verwendet werden kann, ist Photo. Wir werden seine Optionen erkunden, indem wir uns die Spalte Photo unserer Tabelle Employee ansehen.

  1. Suchen Sie in App Workbench > Tables die Tabelle Employee und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Columns die Spalte Photo und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Das Bearbeitungsbildschirm der Spalte wird angezeigt:

    Photo column edit screen

  3. Im Bereich Data Types sind die folgenden Felder verfügbar:

    1. Logical: Hier ist Photo als logischer Datentyp ausgewählt.

    2. Physical: Spalten mit diesem logischen Datentyp haben nur eine Option für den physischen Datentyp: Binary. Sie wird numerisch durch eine Kombination von Nullen und Einsen dargestellt.

  4. Im Bereich PK Settings gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primary Key: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Required: Dieses Kontrollkästchen zeigt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (d. h. einen Nullwert haben kann).

  5. Im Bereich Advanced werden die folgenden Optionen angezeigt:

    1. Column Usage Type: Dies zeigt dem App Builder an, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Usage). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Default Value: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (weitere Informationen finden Sie unter Default values).

File

Der logische Datentyp File wird zum Speichern einer Datei verwendet. Entwickler können ihn verwenden, um Endbenutzern das Hochladen neuer Dateien in die Datenbank zu ermöglichen. In unserer Tabelle Employee haben wir derzeit keine Spalten mit dem Datentyp File, aber wir können die Spalte Photo, die wir uns zuvor angesehen haben, verwenden, um mehr darüber zu erfahren.

  1. Suchen Sie in App Workbench > Tables die Tabelle Employee und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Columns die Spalte Photo und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile.

  3. Im Bereich Data Types:

    1. Ändern Sie die Auswahl im Feld Logical von Photo zu File:

      Photo column edit screen 2

      Hinweis

      Diese Änderung hat keine Auswirkungen auf das Erscheinungsbild der Employee-Seite Ihrer Anwendung, da der Steuerelementtyp auf der zugehörigen Controls-Seite immer noch Photo ist und App Builder dies korrekt rendert.

    2. Das Feld Physical für Spalten mit diesem logischen Datentyp bietet drei Optionen:

      1. Binary: Binärdaten.

      2. Encrypted Binary: Wie die vorherige Option, aber mit Verschlüsselung.

      3. NVarchar: UNICODE-Zeichendaten mit unbestimmter Länge.

  4. Im Bereich PK Settings finden sich Optionen zur manuellen Erstellung von Primärschlüsseln:

    1. Primary Key: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Required: Dieses Kontrollkästchen zeigt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (d. h. einen Nullwert haben kann).

  5. Im Bereich Advanced werden folgende Optionen angezeigt:

    1. Column Usage Type: Dies teilt App Builder mit, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Usage). Dies kann den Entwicklungsprozess später beschleunigen, da einige Felder und Optionen automatisch konfiguriert werden.

    2. Default Value: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn kein anderer Wert angegeben wird (weitere Informationen finden Sie unter Default values).

Number, Percent

Der logische Datentyp Number speichert numerische Daten. Wenn Sie Prozentwerte speichern, darstellen oder berechnen möchten, steht auch ein logischer Datentyp Percent zur Verfügung. Analysieren wir diese beiden, indem wir uns die Spalte UnitsInStock unserer Tabelle Product ansehen:

  1. Navigieren Sie zu App Workbench > Tables, suchen Sie die Tabelle Product und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Columns die Spalte UnitsInStock und klicken Sie auf das Symbol zum Bearbeiten am Ende der Zeile. Der Bearbeitungsbildschirm wird angezeigt:

    UnitsInStock column edit screen

  3. Im Bereich Data Types sind folgende Felder verfügbar:

    1. Logical: Hier werden Number oder Percent als logischer Datentyp ausgewählt.

    2. Physical: Spalten mit diesem logischen Datentyp haben die folgenden Optionen für den physischen Datentyp:

      1. Decimal: Wählen Sie diese Option, um eine Zahl mit einem großen Dezimalwert zwischen 1038 + 1 und 1038 - 1 zu speichern. Dies ist die einzige verfügbare Option, wenn der logische Datentyp Percent ist.

      2. Float: Wählen Sie diese Option, um kleinere Dezimalwerte zwischen -1.79E + 308 und -2.23E -308 zu speichern.

      3. Integer - BigInt: Wählen Sie diese Option, um sehr große Ganzzahlen zwischen -9,223,372,036,854,775,808 und 9,223,372,036,854,775,807 zu speichern.

      4. Integer - Int (derzeit ausgewählt): Die Standardauswahl für Ganzzahlen zwischen -2,147,483,648 und 2,147,483,647.

      5. Integer - SmallInt: Wählen Sie diese Option, um kleine Ganzzahlen zwischen -32,768 und 32,767 zu speichern.

      6. Integer - TinyInt: Wählen Sie diese Option, um Ganzzahlen zwischen 0 und 255 zu speichern.

      7. Real: Wählen Sie diese Option, um reelle Zahlen zwischen -3.40E + 38 und -1.18E - 38 zu speichern.

  4. Im Bereich PK Settings finden sich Optionen zur manuellen Erstellung von Primärschlüsseln:

    1. Primary Key: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Auto Generated: Wenn dieses Kontrollkästchen aktiviert ist und der physische Datentyp ein Ganzzahltyp ist, aktiviert App Builder die native Auto-Increment-Funktionalität der Datenbank-Engine (z. B. das Attribut IDENTITY auf SQL Server und PostgreSQL oder AUTO_INCREMENT auf MySQL). Wenn die Datenbank-Engine keine Spalten mit automatischer Inkrementierung unterstützt, generiert App Builder die Werte selbst.

  5. Erforderlich: Dieses Kontrollkästchen gibt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (d. h. einen Nullwert haben kann).

  6. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies teilt App Builder mit, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Verwendung). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Standardwert: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (weitere Informationen finden Sie unter Standardwerte).

Währung

Der logische Datentyp Währung wird zum Speichern von Geldwerten mit ordnungsgemäßer Formatierung verwendet. In der UI-Ebene werden Steuerelemente, die Währungsspalten verwenden, als Währung identifiziert. Um diesen logischen Datentyp besser zu analysieren, verwenden wir die Spalte UnitPrice unserer Tabelle Product.

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Product und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Spalten die Spalte UnitPrice und klicken Sie auf das Symbol am Ende der Zeile. Der Bearbeitungsbildschirm wird angezeigt:

    Bearbeitungsbildschirm der Spalte UnitPrice

  3. Im Bereich Datentypen sind die folgenden Felder verfügbar:

    1. Logisch: Hier wählen Sie Währung als logischen Datentyp aus.

    2. Physisch: Spalten mit diesem logischen Datentyp haben nur eine physische Datentypoptionen: Dezimal, wird verwendet, um eine Zahl mit einem großen Dezimalwert zwischen 1038 + 1 und 1038 - 1 zu speichern.

    3. Genauigkeit: Geben Sie in diesem Feld die Anzahl der Ziffern ein, die Zahlen haben sollen. Beispielsweise hat die Zahl 123.45 die Genauigkeit 5. Bei Währungen ist dies der Standardwert.

    4. Dezimalstellen: Geben Sie in diesem Feld die Anzahl der Ziffern ein, die rechts vom Dezimalkomma in einer Zahl angezeigt werden. Beispielsweise hat die Zahl 123.45 die Dezimalstellen 2. Bei Währungen ist dies der Standardwert.

  4. Im Bereich PK-Einstellungen gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primärschlüssel: Dieses Kontrollkästchen gibt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Erforderlich: Dieses Kontrollkästchen gibt an, ob diese Spalte beim Erstellen eines neuen Datensatzes leer gelassen werden kann (d. h. einen Nullwert haben kann).

  5. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies teilt App Builder mit, wofür eine bestimmte Spalte verwendet wird (weitere Informationen finden Sie unter Verwendung). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Standardwert: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (weitere Informationen finden Sie unter Standardwerte).

Hinweis

Das in der Benutzeroberfläche angezeigte Währungssymbol hängt davon ab, welche Währung als Standard festgelegt ist. Führen Sie die folgenden Schritte aus, um den Standard zu ändern:

  1. Suchen Sie in App Workbench > Datenquellen die Quelle Northwinds (Standard) und wählen Sie sie aus.

  2. Klicken Sie auf Bearbeiten. Das Dialogfeld Datenspeicherebene wird geöffnet.

  3. Klicken Sie auf die Registerkarte Dienstprogramme und dann auf Erweiterte Einstellungen. Das Dialogfeld Datenquelleneinstellungen wird geöffnet.

  4. Ändern Sie im Feld Währung die Standardwährung.

Boolesch

Der logische Datentyp Boolesch kann nur zwei mögliche Werte speichern, wahr oder falsch, und wird verwendet, um Logik bereitzustellen. Um zu analysieren, wie es funktioniert, verwenden wir das Feld IsDiscontinued in unserer Tabelle Product:

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Product und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Spalten die Spalte IsDiscontinued und klicken Sie auf das Symbol am Ende der Zeile. Der Bearbeitungsbildschirm wird angezeigt:

    Bearbeitungsbildschirm der Spalte IsDiscontinued

  3. Im Bereich Datentypen sind die folgenden Felder verfügbar:

    1. Logisch: Hier wählen Sie Boolesch als logischen Datentyp aus.
  4. Physisch: Spalten mit diesem logischen Datentyp haben die folgenden Optionen für physische Datentypen:

    1. Bit: Speichert Daten als 0 (bedeutet False) oder 1 (bedeutet True). Dies ist normalerweise die Option, die verwendet wird, wenn man ein Kontrollkästchen in der UI-Ebene darstellen möchte, wobei deaktiviert False und aktiviert True bedeutet.

    2. Char: Zeichendaten mit fester Länge. Wenn man Char auswählt, zeigt die UI-Ebene eine Liste an, die True und False als Optionen darstellt, anstatt ein Kontrollkästchen.

    3. Decimal: Wählen Sie dies, um eine Zahl mit einem großen Dezimalwert zu speichern, zwischen 1038 + 1 und 1038 - 1.

  5. Im Bereich PK-Einstellungen gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primärschlüssel: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Erforderlich: Dieses Kontrollkästchen zeigt an, ob diese Spalte leer gelassen werden kann (d. h. einen Nullwert haben kann), wenn ein neuer Datensatz erstellt wird.

  6. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies zeigt App Builder an, wofür eine bestimmte Spalte verwendet wird (siehe Verwendung für weitere Informationen). Dies kann den Entwicklungsprozess später beschleunigen.

    2. Standardwert: In diesem Feld kann man einen Standardwert eingeben, der für die Spalte verwendet wird, wenn keiner angegeben ist (siehe Standardwerte für weitere Informationen).

E-Mail, URL

Der logische Datentyp E-Mail wird verwendet, um E-Mail-Adressen zu erfassen, zu speichern und anzuzeigen. Ähnlich hat der Typ URL denselben Zweck, aber für Webadressen. Obwohl es technisch möglich ist, andere logische Datentypen zur Speicherung dieser Informationen zu verwenden, stellt die Verwendung dieser Typen Datenkonsistenz sicher, indem alle E-Mail- oder URL-Einträge mit der empfohlenen Länge gespeichert werden und ihnen derselbe Standard-Steuerelementtyp zugewiesen wird.

Diese Typen sind ausgezeichnete Beispiele für Spaltentemplates, bei denen es sich um vorkonfigurierte Spaltendefinitionen handelt, die mit App Builder ausgeliefert werden, um die Entwicklung zu beschleunigen. Weitere Informationen dazu und zum Erstellen eigener Templates finden Sie unter Spaltentemplates.

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Kunde und wählen Sie sie aus.

  2. Klicken Sie auf der Registerkarte Spalten auf + Spalte. Der Bildschirm zur Spaltenerstellung wird angezeigt.

  3. Geben Sie im Feld Name KontaktE-Mail oder KundenWebsite ein, je nachdem, welche Art von Daten man speichern möchte.

  4. Im Bereich Datentypen sind die folgenden Optionen verfügbar:

    1. Logisch: Wählen Sie E-Mail oder URL als logischen Datentyp. Dies ändert einige der unten angezeigten Standardwerte:

      Bildschirm zur Erstellung der Spalte KontaktE-Mail

    2. Physisch: Spalten mit diesem logischen Datentyp haben die folgenden Optionen für physische Datentypen:

      1. Char: Zeichendaten mit fester Länge.

      2. Verschlüsselter Text: Verschlüsselte Textdaten.

      3. NChar: UNICODE-Zeichendaten mit fester Länge.

      4. NVarchar: UNICODE-Zeichendaten mit unbestimmter Länge. Dies ist die Standardauswahl für den Datentyp URL.

      5. Varchar: Zeichendaten mit unbestimmter Länge. Dies ist die Standardauswahl für den Datentyp E-Mail.

    3. Länge: Die Länge der Web- oder E-Mail-Adresse. Für den Datentyp URL beträgt der Standardwert 2000 und für E-Mail 320.

  5. Im Bereich PK-Einstellungen gibt es Optionen zur Unterstützung der manuellen Erstellung von Primärschlüsseln:

    1. Primärschlüssel: Dieses Kontrollkästchen zeigt an, dass die Spalte als Primärschlüssel der Tabelle fungieren soll.

    2. Erforderlich: Dieses Kontrollkästchen zeigt an, ob diese Spalte leer gelassen werden kann (d. h. einen Nullwert haben kann), wenn ein neuer Datensatz erstellt wird.

  6. Im Bereich Erweitert werden die folgenden Optionen angezeigt:

    1. Spaltennutzungstyp: Dies zeigt App Builder an, wofür eine bestimmte Spalte verwendet wird (siehe Verwendung für weitere Informationen). Dies kann den Entwicklungsprozess später beschleunigen.
  7. Standardwert: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, falls kein Wert angegeben wird (weitere Informationen finden Sie unter Standardwerte).

    1. Übersetzbar: Wenn diese Option aktiviert ist, werden Übersetzungen für die betreffende Spalte aktiviert. Das bedeutet, dass Daten in der Spalte, die über die Business Layer hinzugefügt oder bearbeitet werden, zur Laufzeit automatisch übersetzt werden. Wenn Sie das Anwendungspaket übersetzen, werden auch alle Daten in der Spalte übersetzt.

Standardwerte

Spalten in App Builder können mit Standardwerten erstellt werden. Dies ist beispielsweise nützlich, wenn viele Datensätze denselben Wert für eine bestimmte Spalte mit wenigen oder gar keinen Ausnahmen haben sollen. In diesem Fall würde die Verwendung eines Standardwerts und das Deaktivieren von Aktualisierungsvorgängen die Datenintegrität vollständig gewährleisten.

Um zu zeigen, wie man einer Spalte einen Standardwert zuweist, verwenden wir die Spalte Land der Tabelle Mitarbeiter. Wir gehen davon aus, dass die Mehrheit der Mitarbeiter unseres Unternehmens aus den USA stammt. Daher sollte dies der Standardwert der Spalte sein.

  1. Navigieren Sie zu App Workbench > Tabellen und suchen Sie die Tabelle Mitarbeiter und wählen Sie sie aus.

  2. Suchen Sie auf der Registerkarte Spalten die Spalte Land und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Der Bearbeitungsbildschirm der Spalte wird angezeigt.

  3. Geben Sie im Bereich Erweitert United States oder USA in das Feld Standardwert ein.

    Standardwert der Spalte „Land"

  4. Klicken Sie auf Speichern.

Testen Sie Ihre Arbeit, indem Sie auf die Schaltfläche Ergebnisse im Bereich Tabelle klicken. Wenn die Liste der Datensätze angezeigt wird, klicken Sie auf Erstellen und prüfen Sie, ob der Standardwert in der richtigen Spalte angezeigt wird. Wenn ja, hat Ihre Änderung funktioniert. Jetzt wird die Spalte Land automatisch den eingegebenen Wert (United States oder USA) haben, wenn ein neuer Datensatz zur Tabelle Mitarbeiter hinzugefügt wird. Wenn ein einzelner Eintrag dies erfordert, können Sie diesen Wert natürlich manuell bearbeiten. Dies würde Ihnen viel Zeit sparen, wenn es nur wenige oder gar keine Mitarbeiter in anderen Ländern gibt.

Übungszeit: Einen Standardwert in der Tabelle „Produkt" festlegen

Fügen Sie nach den oben für die Tabelle Mitarbeiter verwendeten Schritten einen Standardwert zu einer der Spalten in der Tabelle Produkt hinzu. Nehmen wir an, dass beim Hinzufügen eines neuen Produkts zu unserem Produktkatalog anfangs keine Einheiten auf Lager sind. Geben Sie daher der Spalte UnitsInStock einen Standardwert von 0. Testen Sie Ihre Ergebnisse nach dem Festlegen des Standardwerts.

Verwendung

Alle Spalten in App Builder haben ein Feld Spaltenverwendungstyp (in der Registerkarte Spalten als Verwendung abgekürzt). Mit diesem Feld können Sie den beabsichtigten Zweck einer Spalte angeben. Obwohl optional, empfehlen wir, es zu verwenden, wenn eine der vordefinierten Optionen Ihren Anforderungen entspricht. Dies ermöglicht es App Builder, automatisch relevante Funktionen, Validierungen oder UI-Komponenten für diese Spalte zu aktivieren und beschleunigt Ihren Entwicklungsprozess.

Das Feld Spaltenverwendungstyp befindet sich im Bereich Erweitert des Bearbeitungsbildschirms einer Spalte. Die vollständige Liste der Optionen finden Sie unter Spaltenverwendungstypen, aber die am häufigsten verwendeten sind die folgenden:

  • Titel: Wird verwendet, um anzugeben, dass eine Spalte einen Listentitel enthält. Wenn Sie also Listenelemente erstellen, um Dropdown-Menüs in der Benutzeroberfläche zu erstellen, weiß App Builder, welche Spalte verwendet werden soll.

  • Untertitel: Wird verwendet, um Kontext für Titelfelder bereitzustellen. Wenn Sie diesen Verwendungstyp einer Spalte zuweisen, zeigt App Builder ihren Inhalt unter dem Titel an.

  • ENUM: Eine Abkürzung für „Enumeration". Dieser Verwendungstyp ordnet einen aussagekräftigen Zeichenfolgenwert einem eindeutigen Bezeichner (wie einem Primärschlüssel) zu. Dies ermöglicht es Ihnen, die aufgezählte Zeichenfolge (z. B. „Montag", „Dienstag") zu verwenden, um einen Datensatz auf menschenlesbare Weise eindeutig zu identifizieren, anstatt sich auf eine UUID (z. B. a1b2c3d4) zu verlassen, die für einen Benutzer keine Bedeutung hat.

  • Hinzugefügt von/Hinzugefügt am: Spalten mit dieser Bezeichnung werden mit Informationen darüber gefüllt, wer einen Datensatz erstellt hat oder wann dies geschah. Die Funktion „Audit lite" erstellt Spalten mit diesen Verwendungstypen automatisch.

  • Changed By/Changed On: Spalten mit dieser Bezeichnung werden mit einem Datensatz darüber gefüllt, wer einen Datensatz geändert hat oder wann dies geschah. Die Audit-lite-Funktion erstellt Spalten mit diesen Verwendungstypen automatisch.

  • IsActive: Spalten mit dieser Bezeichnung geben an, ob ein Eintrag derzeit aktiv ist oder nicht. Die Audit-lite-Funktion erstellt Spalten mit diesen Verwendungstypen automatisch.

Hinweis

Diese Lektion behandelt nicht jeden Verwendungstyp. Weitere häufige Typen sind die folgenden:

  • Group: Legt eine Standard-Gruppierungsoption für listenbasierte Steuerelemente fest.

  • Block: Blockiert Bearbeitungsvorgänge, Löschvorgänge oder beides, je nach dem Wert, der der Spalte zugewiesen ist.

  • Audit: Wird von App Builder als Datensatzkennung in der Audit-Tabelle für Datensätze verwendet, die keinen UUID-Primärschlüssel verwenden.

  • Flag: Wird in Diagrammspalten verwendet, um einen Wert in der Nähe eines Datenpunkts anzuzeigen.

Die vollständige Liste der Verwendungstypen und deren Beschreibungen finden Sie unter Column usage types.

Übungszeit: Spaltenverwendungstypen festlegen

Lassen Sie uns zur Übung die Verwendungstypen Subtitle und ENUM festlegen.

  • Unsere Tabelle Category hat eine Spalte Description. Bearbeiten Sie diese Spalte und weisen Sie ihr den Verwendungstyp Subtitle zu. Wenn Sie dies tun, schlägt App Builder in jeder UI-Komponente, die die Spalte Category als Titel verwendet, automatisch vor, Description als Untertitel zu verwenden.

  • Noch in unserer Tabelle Category fügen Sie eine neue Spalte namens CategoryStatus mit String als logischen Datentyp hinzu und weisen Sie ihr den Verwendungstyp ENUM zu. Wenn Sie dies tun, kennzeichnen Sie diese Spalte als die für Menschen lesbare Kennung für die Kategorie. Während CategoryID (eine UUID) der Primärschlüssel ist, könnte CategoryStatus als eindeutiger aufgezählter Wert (z. B. „Active", „Archived", „Draft") verwendet werden, auf den die Geschäftslogik verweisen könnte.

  • Unsere Tabelle Region hat derzeit nur die Spalten RegionID und Region. Fügen Sie zwei neue Spalten hinzu: Description mit dem logischen Datentyp String und RegionCode, ebenfalls mit dem logischen Datentyp String. Weisen Sie den Verwendungstyp Subtitle zu Description und den Verwendungstyp ENUM zu RegionCode zu. Klicken Sie dann auf die Schaltfläche Results im Bereich Table und geben Sie Werte für beide neuen Spalten in den Datensätzen West Coast Region und East Coast Region ein, die Sie in Lesson 2 erstellt haben.

Schlüssel und Indizes

In der Datenschicht ist es wichtig zu verstehen, wie die Datenbank Datensätze identifiziert und organisiert. Dies wird durch Schlüssel und Indizes verwaltet, die für die Gewährleistung der Datenintegrität und die Optimierung der Leistung entscheidend sind.

Schlüssel

Schlüssel sind Spalten (oder Sätze von Spalten), die verwendet werden, um Datensätze in einer Tabelle eindeutig zu identifizieren. Es gibt die folgenden Arten:

  • Primary Key (PK): Dies ist die Hauptkennung für eine Tabelle. Jeder Datensatz muss einen Wert für den Primärschlüssel haben, und dieser Wert muss innerhalb der Tabelle eindeutig sein. In unseren Tabellen sind OrderID, ProductID und EmployeeID alle Primärschlüssel, oft als automatisch generierte eindeutige IDs konfiguriert.

  • Foreign Key (FK): Dies ist eine Spalte in einer Tabelle, die auf eine Spalte in einer anderen Tabelle verweist. Es ist der Mechanismus hinter Bindungen. Beispielsweise ist die Spalte OrderID in der Tabelle OrderDetail ein Fremdschlüssel, der auf OrderID (den Primärschlüssel) in der Tabelle Order verweist.

  • Unique Key (UK): Dies ist eine Einschränkung, die sicherstellt, dass alle Werte in einer bestimmten Spalte (oder einem Satz von Spalten) eindeutig sind, ähnlich wie ein Primärschlüssel. Ein eindeutiger Schlüssel kann in einigen Datenbanksystemen auch einen einzelnen Nullwert zulassen, während ein Primärschlüssel dies nicht kann.

Indizes

Ein Index ist eine Datenstruktur, die die Datenbank verwendet, um Datensätze schneller zu finden. Anstatt eine ganze Tabelle nach einem Wert zu durchsuchen, kann die Datenbank einen Index verwenden, um direkt zu den relevanten Datensätzen zu gelangen.

Sie sollten einen Index zu Spalten hinzufügen, die häufig in Suchvorgängen, Verknüpfungsbedingungen oder WHERE-Klauseln verwendet werden. In unserer Datenbank ist die Spalte OrderNumber in der Tabelle Order ein guter Kandidat für einen Index, da wir möglicherweise häufig nach Bestellungen nach dieser Nummer suchen.

Primärschlüssel werden immer automatisch indexiert, weshalb sie so schnell für Abfragen sind. Das Hinzufügen von Indizes zu anderen Spalten, wie Fremdschlüsseln oder häufig durchsuchten Feldern (wie OrderNumber), kann die Anwendungsleistung erheblich verbessern. Möglicherweise sehen Sie ein +-Symbol neben bestimmten Spalten im App Builder, was ein Hinweis darauf ist, dass das Hinzufügen eines Index vorteilhaft sein könnte.

Best Practices

Die Best Practices des App Builders für die Datenschicht enthalten die folgenden Empfehlungen für Schlüssel und Indizes:

  • Einteile Primärschlüssel: Verwenden Sie einteile UUID-Primärschlüssel. Dies vereinfacht das Datenmodell und unterstützt automatisch alle Audit-Funktionen des App Builders.

  • Spalten indexieren: Indexieren Sie alle Fremdschlüssel. Indexieren Sie auch alle Felder, die häufig zum Sortieren, Filtern oder Verknüpfen von Daten verwendet werden, um die Leistung zu optimieren.

Übung: Einen eindeutigen Schlüssel und einen Index zur Tabelle „Order" hinzufügen

Lassen Sie uns Schlüssel und Indizes in der Tabelle Order in die Praxis umsetzen. Zunächst fügen wir einen eindeutigen Schlüssel in der Spalte OrderNumber hinzu, um doppelte Bestellnummern zu verhindern. Anschließend fügen wir einen separaten Index in derselben Spalte hinzu, um die Abfrageleistung zu verbessern. Wenn Sie die Option Unique beim Erstellen eines Index auswählen, würden beide Ziele auf einmal erreicht, aber wir führen dies in zwei Schritten durch, um jede Option einzeln zu demonstrieren. Weitere Informationen zu den verfügbaren Schlüssel- und Index-Optionen finden Sie unter Registerkarte „Keys & Indexes".

  1. Suchen Sie in App Workbench > Tables die Tabelle Order und wählen Sie sie aus.

  2. Klicken Sie auf die Registerkarte Keys & Indexes.

  3. Klicken Sie auf + Key. Das Dialogfeld Constraint wird geöffnet:

    Constraint

  4. Wählen Sie im Feld Type die Option Unique Key aus.

  5. Wählen Sie im Feld Columns die Option OrderNumber aus.

  6. Klicken Sie auf Save. Jetzt verhindert der App Builder, dass zwei Order-Datensätze denselben OrderNumber-Wert haben.

  7. Klicken Sie erneut auf + Key, um den Index hinzuzufügen. Wählen Sie im Feld Type die Option Index aus.

  8. Wählen Sie im Feld Columns die Option OrderNumber aus.

  9. Klicken Sie auf Save.

Übungszeit: Einen eindeutigen Schlüssel zur Tabelle „OrderDetail" hinzufügen

Fügen Sie nach den obigen Schritten einen eindeutigen Schlüssel zur Tabelle OrderDetail hinzu, indem Sie die Spalten OrderID und ProductID zusammen verwenden. Dies verhindert, dass eine Bestellung dasselbe Produkt mehr als einmal enthält.

Einfügen, aktualisieren und löschen

In der Datenschicht des App Builders kann jede Tabelle und Spalte das Einfügen, Aktualisieren und/oder Löschen von Daten unterstützen. Durch Ändern dieser Optionen in der Datenschicht können Entwickler steuern, wie die Daten in allen anderen Schichten, einschließlich der endgültigen Anwendung, interagiert werden. Dies bedeutet, dass die hier vorgenommenen Änderungen ähnliche Änderungen in anderen Schichten außer Kraft setzen. Wenn beispielsweise das Steuerelement auf einer bestimmten Seite eine Schaltfläche zum Löschen anzeigt und ein Benutzer Löschberechtigungen hat, ist das Löschen eines Datensatzes dennoch nicht möglich, wenn der Löschvorgang hier deaktiviert wurde, und der Versuch führt zu einem Fehler.

Um zu demonstrieren, wie diese Optionen gesteuert werden können, nehmen wir als Beispiel unsere aktuelle Tabelle Employee.

  1. Suchen Sie in App Workbench > Tables die Tabelle Employee und wählen Sie sie aus.

  2. Klicken Sie im Bereich Table auf More > Edge Case. Das Dialogfeld Edge Case Settings wird angezeigt, und der Bereich CRUD Support zeigt drei Kontrollkästchen, die derzeit alle aktiviert sind:

    Edge case settings CRUD support

    • Insertable: Wenn aktiviert, ermöglicht das Einfügen von Tabellendatensätzen über CRUD-Regeln.

    • Updatable: Wenn aktiviert, ermöglicht das Aktualisieren von Tabellendatensätzen über CRUD-Regeln.

    • Deletable: Wenn aktiviert, ermöglicht das Löschen von Tabellendatensätzen über CRUD-Regeln.

    Das Deaktivieren eines der Kontrollkästchen würde die Vorgänge für diese Tabelle in allen Schichten deaktivieren. In der Tabelle Employee möchten wir jedoch, dass alle diese Vorgänge möglich sind, da neue Mitarbeiter eingestellt werden können, die Details vorhandener Mitarbeiter sich ändern können oder sie das Team verlassen können.

Übungszeit: CRUD-Operationen deaktivieren

Eine weitere unserer Tabellen, Product, enthält Datensätze über alle unsere Produkte. Diese Tabelle hat eine Spalte namens IsDiscontinued. Wenn wir ein bestimmtes Produkt nicht mehr verkaufen, müssen wir einfach den Status dieses Feldes von False zu True ändern. Daher ist es nicht erforderlich, Löschvorgänge in dieser Tabelle zuzulassen. Führen Sie die oben beschriebenen Schritte aus und deaktivieren Sie die Löschoperation für diese Tabelle.

Beziehungen

Beziehungen im App Builder sind ein leistungsstarkes Werkzeug zur Gewährleistung der Datenintegrität. Sie definieren Verbindungen zwischen Tabellen, um zu verhindern, dass Benutzer ungültige Daten eingeben oder verwaiste Datensätze erstellen (Datensätze in einer Tabelle, die keinen zugehörigen Datensatz in einer anderen Tabelle mehr haben).

Beim Erstellen einer Beziehung wird eine Tabelle als übergeordnet (die „Eins"-Seite einer Eins-zu-Viele-Beziehung) und die andere als untergeordnet (die „Viele"-Seite) bezeichnet. Die Beziehung verknüpft Spalten, die übereinstimmende Daten enthalten. Normalerweise wird der Primärschlüssel der übergeordneten Tabelle (eine Spalte, die jeden Datensatz eindeutig identifiziert) mit einer entsprechenden Spalte in der untergeordneten Tabelle verknüpft, die dann als Fremdschlüssel bezeichnet wird. Obwohl Beziehungen meist auf dem Primärschlüssel einer Tabelle basieren, können sie auch für andere eindeutige Spalten definiert werden. Eine Beziehung kann auch mit mehreren Spalten aus jeder Tabelle definiert werden.

Schauen wir uns die vorhandene übergeordnet-untergeordnete Beziehung zwischen den Tabellen Order und OrderDetail in unserer Northwinds-Datenbank an.

  1. Suchen Sie in App Workbench > Tables die Tabelle Order und wählen Sie sie aus.

  2. Klicken Sie auf die Registerkarte Relationships und beachten Sie die angezeigten Informationen:

    • Many to One: Dieses Bedienfeld listet Beziehungen auf, bei denen die aktuelle Tabelle (Order) die untergeordnete ist. In diesem Fall können viele Bestellungen mit einem Kunden, einem Mitarbeiter und einem Versandunternehmen verknüpft werden. Die Fremdschlüssel für diese Beziehungen (CustomerID, EmployeeID und ShipperID) befinden sich in der Tabelle Order.

    • One to Many: Dieses Bedienfeld listet Beziehungen auf, bei denen die aktuelle Tabelle (Order) die übergeordnete ist. Die Tabelle OrderDetail wird hier aufgelistet, da viele Bestelldetails zu einer Bestellung gehören können.

      Klicken Sie auf das Bearbeitungssymbol für die OrderDetail-Beziehung. Das Popup Relationship wird geöffnet:

      Beziehungen

      • Primary Table: Identifiziert die übergeordnete Tabelle in der Beziehung (die „Eins"-Seite).

      • Primary Columns: Zeigt die Spalte(n) aus der übergeordneten Tabelle an, die Datensätze für diese Beziehung eindeutig identifizieren.

      • On Delete: Dieses Dropdown definiert, was mit den untergeordneten Datensätzen in der Secondary Table geschehen soll, wenn ein entsprechender übergeordneter Datensatz in der Primary Table gelöscht wird. Die Optionen sind:

        • Cascade: Löscht automatisch alle entsprechenden untergeordneten Datensätze, wenn der übergeordnete Datensatz gelöscht wird.

        • Default: Setzt den Wert der Fremdschlüsselspalte(n) in den untergeordneten Datensätzen auf ihren vordefinierten Standardwert, wenn der übergeordnete Datensatz gelöscht wird.

        • Null: Setzt den Wert der Fremdschlüsselspalte(n) in den untergeordneten Datensätzen auf NULL, wenn der übergeordnete Datensatz gelöscht wird. Dies ist nur möglich, wenn die Fremdschlüsselspalte nicht als „Required" festgelegt ist.

        • Prevent: (Standard) Verhindert das Löschen des übergeordneten Datensatzes, wenn untergeordnete Datensätze vorhanden sind. Dies ist die sicherste Option zur Wahrung der Datenintegrität.

      • On Update: Dies definiert, was mit dem Fremdschlüsselwert in untergeordneten Datensätzen geschehen soll, wenn der entsprechende Schlüsselwert im übergeordneten Datensatz aktualisiert wird. Die Optionen (Cascade, Default, Null und Prevent) funktionieren ähnlich wie die On Delete-Aktionen.

      • Secondary Table: Identifiziert die untergeordnete Tabelle in der Beziehung (die „Viele"-Seite).

      • Secondary Columns: Zeigt die Fremdschlüsselspalte(n) in der untergeordneten Tabelle an, die den Primärspalte(n) entsprechen.

      • Validate: Dieses Kontrollkästchen ist standardmäßig aktiviert und stellt sicher, dass App Builder diese Beziehungsregeln (Fremdschlüsselbeschränkungen) jedes Mal überprüft, wenn ein Speicher- oder Löschvorgang auftritt. Es wird dringend empfohlen, diese Option aktiviert zu lassen.

Übung: Kaskadierende Löschungen für die Beziehung zwischen Order und OrderDetail aktivieren

Derzeit verhindert die Option Verhindern für die Beziehung zwischen Order und OrderDetail, dass eine Bestellung gelöscht wird, solange sie noch Bestelldetails enthält. Ändern wir diese Beziehung so, dass das Löschen einer Bestellung automatisch auch alle ihre Bestelldetails löscht.

  1. Suchen Sie in App Workbench > Tabellen die Tabelle Order und wählen Sie sie aus.

  2. Klicken Sie auf die Registerkarte Beziehungen.

  3. Klicken Sie im Panel Eins zu Viele auf das Bearbeitungssymbol für die Beziehung OrderDetail. Das Popup Beziehung wird geöffnet.

  4. Klicken Sie auf Bearbeiten.

  5. Ändern Sie im Feld Beim Löschen die Auswahl von Verhindern zu Kaskadieren.

    Kaskadierende Löschungen

  6. Klicken Sie auf Speichern.

Jetzt werden beim Löschen eines Order-Datensatzes auch alle zugehörigen OrderDetail-Datensätze gelöscht.

Vorsicht

Verwenden Sie kaskadierende Löschungen mit Bedacht. Das Löschen eines übergeordneten Datensatzes löscht unwiederbringlich auch alle zugehörigen untergeordneten Datensätze.

Weitere Informationen

Dies schließt diese tiefgehende Betrachtung der Datenschicht von App Builder ab. Für einen genaueren Blick auf die anderen Schichten siehe Anhang B für die Geschäftslogikschicht, Anhang C für die UI-Schicht oder Anhang D für die Sicherheitsschicht.