Zum Inhalt springen

Einführung in den App Builder - Anhang A: Die Datenschicht im App Builder (Fortgeschritten)

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

In dieser Lektion werden wir die Datenschicht des App Builders weiter erkunden, den Bereich, in dem wir die Daten speichern, die unsere Anwendung abrufen und manipulieren muss.

Logische Datentypen

Wie wir bereits gelernt haben, ist die Datenschicht der Ort, an dem wir die Informationen speichern, die unsere Anwendungen benötigen, um ihre Aufgaben auszuführen. Der App Builder bietet Werkzeuge, um Ihre Daten logisch zu organisieren, zu kategorisieren und zu kennzeichnen, was die zukünftige Abrufbarkeit einfacher und effizienter macht.

Logische vs. physische Datentypen

Bevor wir jeden Typ untersuchen, ist es wichtig, den grundlegenden Unterschied zwischen logischen und physischen Datentypen zu verstehen, da dieses Konzept für alle in App Builder erstellten Spalten gilt.

  • Logische Datentypen: Diese definieren den Zweck der Daten und wie sie in den Geschäftsschichten und der Benutzeroberfläche (UI) der Anwendung dargestellt werden. Der logische Typ bestimmt, wie der 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 verwendet wird, um die Informationen in der Datenbank zu speichern.

Betrachten Sie beispielsweise die Werte 0 und 1. Diese beiden Werte können auf verschiedene logische Weisen dargestellt werden, abhängig vom Kontext:

  • Als Boolean (darstellt Wahr/Falsch)

  • Als Zahl (die Ganzzahlen 0 und 1)

  • Als Text (die Zeichen 0 und 1)

  • Als Prozent (darstellt 0% und 100%)

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

Jeder dieser logischen Typen wird von der Anwendung unterschiedlich behandelt, selbst wenn die zugrunde liegenden Daten ähnlich sind. Entsprechend können diese Werte physisch in unterschiedlichen Formaten gespeichert werden. Ein Boolean Falsch/Wahr könnte als Bit (0/1) gespeichert werden, während der Text 0/1 als NVarchar gespeichert wird.

Während wir die untenstehenden Datentypen erkunden, werden Sie feststellen, dass für jeden ausgewählten logischen Typ der App Builder eine oder mehrere kompatible physische Typoptionen bereitstellt.

Eindeutige ID

Der logische Datentyp Eindeutige ID wird verwendet, um einen eindeutigen Identifikatorwert zu speichern. In Lektion 2 haben wir kurz auf diesen Datentyp verwiesen, als wir die Region-Tabelle erstellt haben. Wir erwähnten, dass der App Builder automatisch eine Spalte erstellt hat, um die Einträge in dieser Tabelle zu identifizieren, und ihm diesen Datentyp zugewiesen hat. Lassen Sie uns nun jedoch genauer betrachten, wie es funktioniert. Befolgen Sie diese Schritte:

  1. Gehen Sie zu App Workbench > Tabellen, suchen Sie die Kategorie-Tabelle und wählen Sie sie aus.

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

    Bearbeitungsbildschirm der CategoryID-Spalte

  3. Im Abschnitt Datentypen beachten Sie die folgenden Details:

    • Das Feld Logisch ist der Ort, an dem Sie den logischen Datentyp einer Spalte definieren. Diese Spalte wurde automatisch vom App Builder erstellt, und er wählte Eindeutige ID.

    • Das Feld Physisch zeigt die physischen Datentypen an, die für eine Spalte mit diesem logischen Datentyp verfügbar sind:

      1. Char: Zeichen Daten fester Länge.

      2. UUID (derzeit ausgewählt): Dieses Akronym steht für Universally Unique Identifier. Es handelt sich um eine 128-Bit-Zahl, die verwendet wird, um Informationen eindeutig zu identifizieren.

  4. Im Abschnitt PK-Einstellungen sind die folgenden Kontrollkästchen verfügbar. Der App Builder hat alle aktiviert, was die empfohlene Konfiguration ist, wenn Sie einen Primärschlüssel mit einer einzelnen Spalte erstellen, der einen automatisch generierten Wert verwendet. Für komplexere Szenarien, wie z. B. mehrteilige Schlüssel (zum Beispiel einen Schlüssel, der aus zwei Fremdschlüsseln besteht), könnten Sie andere Einstellungen verwenden:

    1. Primärschlüssel: Dieses Kontrollkästchen gibt an, ob eine Spalte der Primärschlüssel ihrer Tabelle sein sollte, das heißt, derjenige, der einen Datensatz eindeutig macht.

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

    3. 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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltenverwendungstyp: Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe Verwendung für weitere Informationen). Derzeit gibt es hier keine Auswahl, da der Zweck eines eindeutigen Identifikators darin besteht, dem App Builder, nicht den Benutzern oder Entwicklern, zu ermöglichen, einen Datensatz zu identifizieren.

    2. Standardwert: In diesem derzeit leeren Feld könnten Sie einen Standardwert für die Spalte definieren (siehe Standardwerte für weitere Informationen). Im Falle von automatisch generierten Werten wird jedoch immer ein Wert bereitgestellt.

Zeichenfolge

Jetzt lassen Sie uns die Zeichenfolge überprüfen, wahrscheinlich den am häufigsten verwendeten logischen Datentyp. Er ermöglicht es Ihnen, eine variable Länge von Zeichenfolgen zu speichern, wie Buchstaben, Symbole und Zahlen. Werfen wir einen genaueren Blick auf eine unserer Spalten, die diesen Datentyp verwendet:

  1. Gehen Sie zu App Workbench > Tabellen, suchen und wählen Sie die Mitarbeiter-Tabelle aus.

  2. Im Tab Spalten finden Sie die Spalte Vorname und klicken Sie auf das Bearbeiten-Symbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm der Spalte:

    Bearbeitungsbildschirm der Vorname-Spalte

  3. Im Abschnitt Datentypen erscheinen die folgenden Optionen:

    1. Im Feld Logisch wurde dieser Spalte der logische Datentyp Zeichenfolge zugewiesen.

    2. Das Feld Physisch hat die folgenden Optionen:

      1. Char: Zeichen-Daten fester Länge.

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

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

      4. NVarchar (derzeit ausgewählt): UNICODE-Zeichendaten unbestimmter Länge. Typischerweise werden alle App Builder-Zeichenfolgen als dieser physische Typ gespeichert, damit sie Unicode unterstützen und weniger Speicherplatz benötigen.

        5.  **Varchar:** Zeichenfolgendaten variabler Länge.

    3.  **Länge:** Anzahl der Bytes, die zur Speicherung der Zahl verwendet werden. Bei den Datentypen binär, varbinary und Bild entspricht die Länge der Anzahl der Bytes.

4.  Im Abschnitt **PK-Einstellungen** gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

5.  Im Abschnitt **Erweitert** erscheinen die folgenden Optionen:

    1.  **Spaltenverwendungstyp:** Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe [Verwendung](#usage) für weitere Informationen). 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 kein Wert angegeben wird (siehe [Standardwerte](#default-values) für weitere Informationen).

    3.  **Übersetzbar:** Wenn aktiviert, schaltet dieses Kontrollkästchen die Übersetzungen für eine bestimmte Spalte ein, was bedeutet, dass Daten in der Spalte, die über die Geschäftsschicht hinzugefügt oder bearbeitet werden, zur Laufzeit automatisch in eine andere Sprache übersetzt werden. Das Übersetzen des Anwendungsbündels übersetzt auch alle Daten in der Spalte.

### Datum, Datum/Uhrzeit, Zeit {: #date-datetime-time }

Dies sind die Formate, die vom App Builder verwendet werden, um ein bestimmtes Datum, eine bestimmte Uhrzeit oder beides zu speichern. Die Datumsinformationen werden im Format `MM/DD/YYYY` formatiert. Wenn Sie versuchen, ein Feld mit diesem logischen Datentyp zu bearbeiten, sehen Sie ein Kalender-Popup, das Ihnen ermöglicht, einen neuen Datumswert auszuwählen.

Wir werden uns genauer ansehen, wie dieser Datentyp funktioniert, indem wir die Spalte **Geburtsdatum** in unserer **Mitarbeiter**-Tabelle analysieren.

1.  In <span class="fas fa-xs fa-tools"></span> **App Workbench > Tabellen**, suchen und wählen Sie die **Mitarbeiter**-Tabelle aus.

2.  Im Tab **Spalten** finden Sie die Spalte **Geburtsdatum** und klicken auf das <span class="fas fa-xs fa-pen"></span> Bearbeiten-Symbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm der Spalte:

    ![Bearbeitungsbildschirm der Geburtsdatum-Spalte](/_download/images/app-builder/manuals/birthdate-column-edit-screen.png){style="width: 500px"}
  1. Im Abschnitt Datentypen erscheinen die folgenden Felder:

    1. Logisch: Hier wählen Sie entweder Datum, Datum/Uhrzeit oder Uhrzeit aus.

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

      1. Wenn der logische Datentyp Datum ist:

        1. Datum: Speichert nur das Datum.

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

        3. Ganzzahl - Int: Speichert eine Ganzzahl zwischen -2.147.483.648 und 2.147.483.647.

      2. Wenn der logische Datentyp Datum/Uhrzeit ist:

        1. DatumUhrzeit: Speichert das Datum und die Tageszeit.
      3. Wenn der logische Datentyp Uhrzeit ist:

        1. Uhrzeit: Speichert nur die Tageszeit.
  2. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

  3. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltenverwendungstyp: Dies zeigt dem App Builder, 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 können Sie einen Standardwert eingeben, der für die Spalte verwendet werden soll, wenn kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

Foto

Ein weiterer logischer Datentyp, der in der Datenebene des App Builders verwendet werden kann, ist Foto. Wir werden seine Optionen erkunden, indem wir die Foto-Spalte unserer Mitarbeiter-Tabelle betrachten.

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

  2. Im Tab Spalten finden Sie die Foto-Spalte und klicken Sie auf das Bearbeiten-Symbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm der Spalte:

    Photo column edit screen

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

    1. Logisch: Hier wird Foto als logischer Datentyp ausgewählt.

    2. Physisch: Spalten mit diesem logischen Datentyp haben nur eine Option für den physischen Datentyp: Binär. Er wird numerisch durch eine Kombination aus Nullen und Einsen dargestellt.

  4. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltennutzungstyp: Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe Nutzung für weitere Informationen). 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 kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

Datei

Der logische Datentyp Datei wird verwendet, um eine Datei zu speichern. Entwickler können ihn verwenden, um Endbenutzern das Hochladen neuer Dateien in die Datenbank zu ermöglichen. In unserer Tabelle Mitarbeiter haben wir derzeit keine Spalten mit dem Datentyp Datei, aber wir können die Foto-Spalte, die wir zuvor betrachtet haben, verwenden, um mehr darüber zu erfahren.

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

  2. Im Tab Spalten finden Sie die Foto-Spalte und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile.

  3. Im Abschnitt Datentypen:

    1. Ändern Sie die Auswahl im Feld Logisch von Foto zu Datei:

      Photo column edit screen 2

      Hinweis

      Dies hat keinen Einfluss auf das Aussehen der Mitarbeiter-Seite Ihrer Anwendung, da der Steuertyp auf der Steuerelemente-Seite weiterhin Foto ist, sodass der App Builder es korrekt rendert.

    2. Das Physikalische Feld für Spalten mit diesem logischen Datentyp hat drei Optionen:

      1. Binär: Binärdaten.

      2. Verschlüsseltes Binär: Dasselbe wie die vorherige Option, jedoch mit Verschlüsselung.

      3. NVarchar: UNICODE-Zeichendaten beliebiger Länge.

  4. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltennutzungstyp: Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe Nutzung für weitere Informationen). Dies kann den Entwicklungsprozess später beschleunigen, da einige Felder und Optionen automatisch konfiguriert werden.

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

Nummer, Prozent

Der logische Datentyp Nummer speichert numerische Daten. Wenn Sie Prozentwerte speichern, darstellen oder berechnen möchten, steht auch ein logischer Datentyp Prozent zur Verfügung. Lassen Sie uns diese beiden analysieren, indem wir die Spalte UnitsInStock unserer Produkt-Tabelle betrachten:

  1. Gehen Sie zu App Workbench > Tabellen, suchen Sie die Produkt-Tabelle und wählen Sie sie aus.

  2. Im Tab Spalten finden Sie die Spalte UnitsInStock und klicken Sie auf das Bearbeiten-Symbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm:

    Bearbeitungsbildschirm der UnitsInStock-Spalte

  3. Im Abschnitt Datentypen stehen die folgenden Felder zur Verfügung:

    1. Logisch: Hier werden Nummer oder Prozent als logischer Datentyp ausgewählt.

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

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

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

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

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

      5. Integer - SmallInt: Wählen Sie dies aus, um kleine ganze Zahlen zu speichern, zwischen -32,768 und 32,767.

      6. Integer - TinyInt: Wählen Sie dies aus, um ganze Zahlen zwischen 0 und 255 zu speichern.

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

  4. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

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

    2. Automatisch generiert: Wenn dieses Kontrollkästchen aktiviert ist und der physische Datentyp ein Ganzzahltyp ist, aktiviert der App Builder die native Auto-Increment-Funktionalität der Datenbank-Engine (zum Beispiel das IDENTITY-Attribut in SQL Server und PostgreSQL oder AUTO_INCREMENT in MySQL). Wenn die Datenbank-Engine keine auto-increment-Spalten unterstützt, generiert der App Builder die Werte selbst.

    3. 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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

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

    2. Standardwert: In diesem Feld können Sie einen Standardwert eingeben, der für die Spalte verwendet werden soll, wenn kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

Währung

Der Währungs-logische Datentyp wird verwendet, um monetäre Werte mit der richtigen Formatierung zu speichern. In der UI-Schicht werden Steuerelemente, die Währungsspalten verwenden, als Währung identifiziert. Um diesen logischen Datentyp besser zu analysieren, verwenden wir die Einheitspreis-Spalte unserer Produkt-Tabelle.

  1. Gehe zu App Workbench > Tabellen, suche die Produkt-Tabelle und wähle sie aus.

  2. Im Tab Spalten finde die Einheitspreis-Spalte und klicke auf das Bearbeiten-Symbol am Ende der Zeile. Du wirst den Bearbeitungsbildschirm sehen:

    Einheitspreis Spalte Bearbeitungsbildschirm

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

    1. Logisch: Hier wählst du Währung als logischen Datentyp aus.

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

    3. Präzision: Gib in diesem Feld die Anzahl der Ziffern an, die die Zahlen haben sollen. Zum Beispiel hat die Zahl 123.45 eine Präzision von 5. Für Währungen ist dies der Standardwert.

    4. Skala: Gib in diesem Feld die Anzahl der Ziffern an, die rechts vom Dezimalpunkt in einer Zahl angezeigt werden. Zum Beispiel hat die Zahl 123.45 eine Skala von 2. Für Währungen ist dies der Standardwert.

  4. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltenverwendungstyp: Dies zeigt dem App Builder an, wofür eine bestimmte Spalte verwendet werden soll (siehe Verwendung für weitere Informationen). 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 kein Wert angegeben ist (siehe Standardwerte für weitere Informationen).

Hinweis

Das Währungssymbol, das in der Benutzeroberfläche angezeigt wird, variiert je nachdem, welche Währung als Standard festgelegt ist. Um den Standard zu ändern, befolgen Sie diese Schritte:

  1. In App Workbench > Datenquellen, suchen und wählen Sie die Northwinds (Standard)-Quelle aus.

  2. Klicken Sie auf Bearbeiten. Der Dialog Datenlagerungsebene öffnet sich.

  3. Klicken Sie auf die Registerkarte Dienstprogramme und dann auf Erweiterte Einstellungen. Der Dialog Einstellungen der Datenquelle wird geöffnet.

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

Boolean

Der Boolean logische Datentyp 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 Produkt-Tabelle:

  1. In App Workbench > Tabellen, suchen und wählen Sie die Produkt-Tabelle aus.

  2. Im Tab Spalten finden Sie die Spalte IsDiscontinued und klicken auf das Bearbeiten-Symbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm:

    IsDiscontinued column edit screen

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

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

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

      1. Bit: Speichert Daten als 0 (was Falsch bedeutet) oder 1 (was Wahr bedeutet). Dies ist typischerweise die Option, die verwendet wird, wenn Sie ein Kontrollkästchen in der Benutzeroberfläche darstellen möchten, wobei nicht angekreuzt Falsch und angekreuzt Wahr bedeutet.

      2. Char: Zeichendaten fester Länge. Wenn Sie Char auswählen, zeigt die Benutzeroberfläche eine Liste an, die Wahr und Falsch als Optionen präsentiert, anstelle eines Kontrollkästchens.

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

  4. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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.

  5. Im Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltennutzungstyp: Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe Nutzung für weitere Informationen). 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 kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

Email, URL

Der logische Datentyp Email wird verwendet, um Email-Adressen zu erfassen, zu speichern und anzuzeigen. Ebenso hat der Typ URL denselben Zweck, jedoch für Webadressen. Obwohl es technisch möglich ist, andere logische Datentypen zu verwenden, um diese Informationen zu speichern, sorgt die Verwendung dieser Typen für Datenkonsistenz, indem alle Email- oder URL-Einträge mit der empfohlenen Länge gespeichert und ihnen derselbe Standardsteuertyp zugewiesen wird.

Diese Typen sind hervorragende Beispiele für Spaltenvorlagen, die vorkonfigurierte Spaltendefinitionen sind, die mit dem App Builder geliefert werden, um die Entwicklung zu beschleunigen. Sie können mehr darüber erfahren und sogar Ihre eigenen in Spaltenvorlagen erstellen.

  1. In App Workbench > Tabellen, suchen und wählen Sie die Kunden-Tabelle aus.

  2. Klicken Sie im Tab Spalten auf + Spalte. Der Bildschirm zur Erstellung von Spalten wird angezeigt.

  3. Geben Sie im Feld Name ContactEmail oder CustomerWebsite ein, je nachdem, welche Art von Daten Sie speichern möchten.

  4. Im Abschnitt Datentypen stehen die folgenden Optionen zur Verfügung:

    1. Logisch: Wählen Sie Email oder URL als logischen Datentyp aus. Dadurch ändern sich einige der Standardwerte, die darunter angezeigt werden:

      Bildschirm zur Erstellung der ContactEmail-Spalte

    2. Physisch: Spalten mit diesem logischen Datentyp haben die folgenden physischen Datentypoptionen:

      1. Char: Zeichenfolgendaten fester Länge.

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

      3. NChar: UNICODE-Zeichenfolgendaten fester Länge.

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

      5. Varchar: Zeichenfolgendaten unbestimmter Länge. Dies ist die Standardauswahl für den Email-Datentyp.

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

  5. Im Abschnitt PK-Einstellungen gibt es Optionen, die bei der manuellen Erstellung von Primärschlüsseln helfen:

    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 Abschnitt Erweitert erscheinen die folgenden Optionen:

    1. Spaltenverwendungstyp: Dies zeigt dem App Builder, 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 können Sie einen Standardwert eingeben, der für die Spalte verwendet werden soll, wenn kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

    3. Übersetzbar: Wenn aktiviert, schaltet dieses Kontrollkästchen Übersetzungen für eine bestimmte Spalte ein, was bedeutet, dass Daten in der Spalte, die über die Geschäftsschicht hinzugefügt oder bearbeitet werden, zur Laufzeit automatisch übersetzt werden. Die Übersetzung des Anwendungsbündels übersetzt auch alle Daten in der Spalte.

Standardwerte

Spalten im App Builder können mit Standardwerten erstellt werden. Dies kann nützlich sein, wenn viele Datensätze denselben Wert für eine bestimmte Spalte mit wenigen oder keinen Ausnahmen haben sollen. Im letzteren Fall würde die Verwendung eines Standardwerts und das Deaktivieren von Aktualisierungsoperationen die Datenintegrität vollständig gewährleisten.

Um zu demonstrieren, wie man einer Spalte einen Standardwert zuweist, verwenden wir die Country-Spalte der Employee-Tabelle. Wir gehen davon aus, dass die Mehrheit der Mitarbeiter unseres Unternehmens aus den Vereinigten Staaten stammt. Daher sollte dies der Standardwert der Spalte sein.

  1. In App Workbench > Tabellen, suchen und wählen Sie die Employee-Tabelle aus.

  2. Im Tab Spalten finden Sie die Country-Spalte und klicken auf das Bearbeitungssymbol am Ende der Zeile. Der Bearbeitungsbildschirm der Spalte wird angezeigt.

  3. Im Abschnitt Erweitert geben Sie United States oder USA im Feld Standardwert ein.

    Country column default value

  4. Klicken Sie auf Speichern.

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

Übungszeit: Setzen Sie einen Standardwert in der Produkt-Tabelle

Befolgen Sie die Schritte, die wir oben für die Employee-Tabelle verwendet haben, und fügen Sie einer der Spalten in der Product-Tabelle einen Standardwert hinzu. Angenommen, wenn ein neues Produkt in den Katalog unseres Unternehmens aufgenommen wird, sind zunächst keine Einheiten auf Lager. Geben Sie daher der UnitsInStock-Spalte einen Standardwert von 0. Testen Sie Ihre Ergebnisse, nachdem Sie den Standardwert festgelegt haben.

Verwendung

Alle Spalten im App Builder haben ein Feld Column Usage Type (abgekürzt als Usage im Tab Spalten). Dieses Feld ermöglicht es Ihnen, den beabsichtigten Zweck einer Spalte anzugeben. Obwohl optional, empfehlen wir die Verwendung, wenn eine der vordefinierten Optionen Ihren Bedürfnissen entspricht. Dadurch kann der App Builder automatisch relevante Funktionen, Validierungen oder UI-Komponenten für diese Spalte aktivieren, was Ihren Entwicklungsprozess beschleunigt.

Das Feld für den Spaltentyp kann im Erweitert-Bereich des Bearbeitungsbildschirms einer Spalte gefunden werden. Die vollständige Liste der Optionen ist in Spaltentypen verfügbar, aber die am häufigsten verwendeten sind wie folgt:

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

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

  • ENUM: Eine Abkürzung für "Enumeration", dieser Verwendungstyp verknüpft einen bedeutungsvollen Stringwert mit einem eindeutigen Identifikator (wie einem Primärschlüssel). Dies ermöglicht es Ihnen, den enumerierten String (z. B. 'Montag', 'Dienstag') zu verwenden, um einen Datensatz auf eine für den Menschen lesbare 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 ausgefüllt mit dem, der einen Datensatz erstellt hat, oder wann dies geschehen ist. Die Audit-lite-Funktion erstellt automatisch Spalten mit diesen Verwendungstypen.

  • Geändert von/Geändert am: Spalten mit dieser Bezeichnung werden ausgefüllt mit einem Protokoll darüber, wer einen Datensatz geändert hat oder wann dies geschehen ist. Die Audit-lite-Funktion erstellt automatisch Spalten mit diesen Verwendungstypen.

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

Übungszeit: Spaltentypen festlegen

Zur Übung legen wir die Verwendungstypen Untertitel und ENUM fest.

  • Unsere Kategorie-Tabelle hat eine Beschreibung-Spalte. Bearbeiten Sie diese Spalte und weisen Sie ihr den Verwendungstyp Untertitel zu. Wenn Sie dies tun, wird App Builder in jeder UI-Komponente, die die Kategorie-Spalte als Titel verwendet, automatisch vorschlagen, Beschreibung als Untertitel zu verwenden.

  • Bleiben Sie in unserer Kategorie-Tabelle und fügen Sie eine neue Spalte mit dem Namen KategorieStatus hinzu, wobei String als logischer Datentyp und der Verwendungstyp ENUM zugewiesen wird. Wenn Sie dies tun, kennzeichnen Sie diese Spalte als den für den Menschen lesbaren Identifikator für die Kategorie. Während KategorieID (eine UUID) der Primärschlüssel ist, könnte KategorieStatus als der eindeutige enumerierte Wert (z. B. "Aktiv", "Archiviert", "Entwurf") verwendet werden, auf den die Geschäftslogik verweisen könnte.

Schlüssel und Indizes

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

Schlüssel

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

  • Primärschlüssel (PK): Dies ist der Hauptidentifikator 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 alles Primärschlüssel, die oft als automatisch generierte eindeutige IDs konfiguriert sind.

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

  • Eindeutiger Schlüssel (UK): Dies ist eine Einschränkung, die sicherstellt, dass alle Werte in einer bestimmten Spalte (oder Gruppe 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 von der Datenbank verwendet wird, um Datensätze schneller zu finden. Anstatt eine gesamte 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 Suchoperationen, Verknüpfungsbedingungen oder WHERE-Klauseln verwendet werden. In unserer Datenbank ist die OrderNumber-Spalte in der Order-Tabelle ein guter Kandidat für einen Index, da wir möglicherweise häufig nach Bestellungen mit dieser Nummer suchen.

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

Einfügen, Aktualisieren und Löschen

Im Datenlayer des App Builders kann jede Tabelle und jede Spalte das Einfügen, Aktualisieren und/oder Löschen von Daten unterstützen. Durch die Änderung dieser Optionen im Datenlayer können Entwickler steuern, wie mit den Daten in allen anderen Schichten, einschließlich der endgültigen Anwendung, interagiert wird. Das bedeutet, dass die hier vorgenommenen Änderungen ähnliche Modifikationen in anderen Schichten übersteuern. Zum Beispiel, selbst wenn die Steuerung auf einer bestimmten Seite eine Löschtaste anzeigt und ein Benutzer Löschberechtigungen hat, ist das Löschen eines Datensatzes nicht möglich, wenn die Löschoperation hier deaktiviert wurde, und der Versuch, dies zu tun, führt zu einem Fehler.

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

  1. Gehe zu App Workbench > Tabellen, suche die Mitarbeiter-Tabelle und wähle sie aus.

  2. Klicke im Tabellen-Panel auf Mehr > Randfall. Der Dialog Randfall-Einstellungen erscheint, und der Abschnitt CRUD-Unterstützung zeigt drei Kontrollkästchen, die derzeit alle aktiviert sind:

    Randfall-Einstellungen CRUD-Unterstützung

    • Einfügbar: Wenn aktiviert, können Tabellenaufzeichnungen über CRUD-Regeln eingefügt werden.

    • Aktualisierbar: Wenn aktiviert, können Tabellenaufzeichnungen über CRUD-Regeln aktualisiert werden.

    • Löschbar: Wenn aktiviert, können Tabellenaufzeichnungen über CRUD-Regeln gelöscht werden.

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

Übungszeit: Deaktivieren von CRUD-Operationen

Eine weitere unserer Tabellen, Produkt, enthält Datensätze über all unsere Produkte. Diese Tabelle hat eine Spalte namens IsDiscontinued. Wenn wir also jemals aufhören, ein bestimmtes Produkt zu verkaufen, müssen wir einfach den Status dieses Feldes von False auf True ändern. Daher ist es nicht notwendig, Löschoperationen in dieser Tabelle zuzulassen. Befolge die oben beschriebenen Schritte, um die Löschoperation für diese Tabelle zu deaktivieren.

Beziehungen

Beziehungen im App Builder sind ein leistungsstarkes Werkzeug zur Sicherstellung 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).

Bei der Erstellung einer Beziehung wird eine Tabelle als Elternteil (die "eins" Seite einer Eins-zu-viele-Beziehung) und die andere als Kind (die "viele" Seite) festgelegt. Die Beziehung verknüpft Spalten, die übereinstimmende Daten enthalten. Typischerweise beinhaltet dies die Verknüpfung des Primärschlüssels der Elterntabelle (eine Spalte, die jeden Datensatz eindeutig identifiziert) mit einer entsprechenden Spalte in der Kindtabelle, die dann als Fremdschlüssel bezeichnet wird. Während Beziehungen am häufigsten auf dem Primärschlüssel einer Tabelle basieren, ist es auch möglich, sie auf anderen eindeutigen Spalten zu definieren. Eine Beziehung kann auch unter Verwendung mehrerer Spalten aus jeder Tabelle definiert werden.

Lassen Sie uns die bestehende Eltern-Kind-Beziehung zwischen den Order- und OrderDetail-Tabellen in unserer Northwinds-Datenbank untersuchen.

  1. In App Workbench > Tabellen, suchen und wählen Sie die Order-Tabelle aus.

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

    • Viele zu Eins: Dieser Abschnitt listet Beziehungen auf, bei denen die aktuelle Tabelle (Order) das Kind ist. In diesem Fall können viele Bestellungen mit einem Kunden, einem Mitarbeiter und einem Versender verbunden sein. Die Fremdschlüssel für diese Beziehungen (CustomerID, EmployeeID und ShipperID) existieren in der Order-Tabelle.

    • Eins zu Viele: Dieser Abschnitt listet Beziehungen auf, bei denen die aktuelle Tabelle (Order) das Elternteil ist. Die OrderDetail-Tabelle wird hier aufgeführt, da viele Bestelldetails zu einer Bestellung gehören können.

      Klicken Sie auf das Bearbeiten-Symbol für die OrderDetail-Beziehung. Das Popup Beziehung öffnet sich:

      Beziehungen

      • Primärtabelle: Identifiziert die Elterntabelle in der Beziehung (die "eins" Seite).

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

      • ...Beim Löschen: Dieses Dropdown definiert, was mit den Kind-Datensätzen in der sekundären Tabelle geschehen soll, wenn ein entsprechender Eltern-Datensatz in der primären Tabelle gelöscht wird. Die Optionen sind:

        • Kaskade: Löscht automatisch alle entsprechenden Kind-Datensätze, wenn der Eltern-Datensatz gelöscht wird.

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

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

        • Verhindern: (Standard) Verhindert das Löschen des Eltern-Datensatzes, wenn Kind-Datensätze vorhanden sind. Dies ist die sicherste Option zur Wahrung der Datenintegrität.

      • ...Beim Aktualisieren: Dies definiert, was mit dem Fremdschlüsselwert in den Kind-Datensätzen geschehen soll, wenn der entsprechende Schlüsselwert im Eltern-Datensatz aktualisiert wird. Die Optionen (Kaskade, Standard, Null und Verhindern) funktionieren ähnlich wie die Beim Löschen-Aktionen.

      • Sekundäre Tabelle: Identifiziert die Kind-Tabelle in der Beziehung (die "viele" Seite).

      • Sekundäre Spalten: Zeigt die Fremdschlüsselspalte(n) in der Kind-Tabelle an, die den primären Spalte(n) entsprechen.

      • Validieren: Dieses Kontrollkästchen, das standardmäßig aktiviert ist, stellt sicher, dass der App Builder diese Beziehungsregeln (Fremdschlüsselbeschränkungen) jedes Mal überprüft, wenn eine Speicher- oder Löschoperation durchgeführt wird. Es wird dringend empfohlen, diese Option aktiviert zu lassen.

Weiterführendes Lernen

Dies schließt diesen tiefen Einblick in die Details der Datenebene des App Builders ab. Für einen genaueren Blick auf die anderen Ebenen siehe Anhang B und Anhang C.