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äfts- und Benutzeroberflächen (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 je nach Kontext auf verschiedene logische Weisen dargestellt werden:

  • Als Boolean (repräsentiert Wahr/Falsch)

  • Als Zahl (die Ganzzahlen 0 und 1)

  • Als Text (die Zeichen 0 und 1)

  • Als Prozent (repräsentiert 0% und 100%)

  • Als Währung (repräsentiert $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 würde.

Während wir die unten aufgeführten Datentypen erkunden, werden Sie sehen, dass für jeden ausgewählten logischen Typ 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 Kategorie-Tabelle erstellt haben. Wir erwähnten, dass App Builder automatisch eine Spalte erstellt hat, um die Einträge in dieser Tabelle zu identifizieren, und ihr 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 KategorieID und klicken Sie auf das Bearbeitungssymbol am Ende der Zeile. Sie sehen den folgenden Bearbeitungsbildschirm:

    KategorieID-Spalte Bearbeitungsbildschirm

  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 von App Builder erstellt, und es wurde Eindeutige ID ausgewählt.

    • 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. 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, also 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. Spaltennutzungstyp: Dies zeigt dem App Builder, wofür eine bestimmte Spalte verwendet wird (siehe Nutzung 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 auf das Bearbeitungssymbol 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. Spaltentyp: 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 wird, wenn kein Wert angegeben wird (siehe Standardwerte 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

Dies sind die Formate, die vom App Builder verwendet werden, um ein bestimmtes Datum, eine bestimmte Uhrzeit oder beides zu speichern. Die Datumsinformationen sind 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. Gehen Sie zu App Workbench > Tabellen, suchen Sie die Mitarbeiter-Tabelle und wählen Sie sie aus.

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

    Bearbeitungsbildschirm der Geburtsdatum-Spalte

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

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:

    Foto-Spaltenbearbeitungsbildschirm

  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. 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 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 Mitarbeiter-Tabelle haben wir derzeit keine Spalten mit dem Datentyp Datei, aber wir können die Foto-Spalte, die wir uns zuvor angesehen haben, verwenden, um mehr darüber zu erfahren.

  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 Bearbeitungssymbol am Ende der Zeile.

  3. Im Abschnitt Datentypen:

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

      Foto-Spaltenbearbeitungsbildschirm 2

      Hinweis

      Dies hat keinen Einfluss auf das Aussehen der Mitarbeiter-Seite Ihrer Anwendung, da auf der Steuerelemente-Seite der Steuertyp 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. 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, 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 werden soll, 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 sind die folgenden Felder verfügbar:

    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 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 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 können Sie einen Standardwert eingeben, der für die Spalte verwendet wird, wenn kein Wert angegeben wird (siehe Standardwerte für weitere Informationen).

Währung

Der logische Datentyp Währung 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 Spalte Einheitspreis unserer Produkt-Tabelle.

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

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

    Bearbeitungsbildschirm der UnitPrice-Spalte

  3. Im Abschnitt 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 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: Geben Sie in diesem Feld die Anzahl der Ziffern an, die Zahlen haben sollten. Zum Beispiel hat die Zahl 123.45 eine Präzision von 5. Für Währungen ist dies der Standardwert.

    4. Skala: Geben Sie 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. Spaltennutzungsart: 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).

Hinweis

Das in der Benutzeroberfläche angezeigte Währungssymbol variiert je nach der als Standard festgelegten Währung. Um den Standard zu ändern, folgen Sie diesen Schritten:

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

  2. Klicken Sie auf Bearbeiten. Der Dialog Datenspeicherschicht ö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 logische Datentyp Boolean 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 Sie die Produkt-Tabelle und wählen Sie sie aus.

  2. Finden Sie im Tab Spalten die Spalte IsDiscontinued und klicken Sie auf das -Bearbeitungssymbol am Ende der Zeile. Sie sehen den Bearbeitungsbildschirm:

    IsDiscontinued-Spalte Bearbeitungsbildschirm

  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 UI-Schicht darstellen möchten, wobei nicht angekreuzt Falsch und angekreuzt Wahr bedeutet.

      2. Char: Zeichendaten fester Länge. Wenn Sie Char auswählen, zeigt die UI-Schicht 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 ist (siehe Standardwerte für weitere Informationen).

Email, URL

Der logische Datentyp Email wird verwendet, um Email-Adressen zu erfassen, zu speichern und anzuzeigen. Ähnlich 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 der Spalte 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. 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 Optionen für den physischen Datentyp:

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

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

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

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

      5. Varchar: Zeichendaten variabler 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. 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).

    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 ü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 haben sollen, mit wenigen oder keinen Ausnahmen. 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 Land-Spalte der Mitarbeiter-Tabelle. Wir gehen davon aus, dass der Großteil des Personals unseres Unternehmens aus den Vereinigten Staaten stammt. Daher sollte dies der Standardwert der Spalte sein.

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

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

  3. Geben Sie im Abschnitt Erweitert Vereinigte Staaten oder USA in das Feld Standardwert ein.

    Standardwert der Landspalte

  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 jedes Mal, wenn ein neuer Datensatz zur Mitarbeiter-Tabelle hinzugefügt wird, wird die Land-Spalte automatisch den von Ihnen eingegebenen Wert (Vereinigte Staaten oder USA) haben. Sollte jedoch ein einzelner Eintrag dies erfordern, können Sie diesen Wert natürlich manuell bearbeiten. Dies würde Ihnen viel Zeit sparen, wenn es nur wenige oder keine Mitarbeiter gibt, die in anderen Ländern leben.

Übungszeit: Setzen Sie einen Standardwert in der Produkttabelle

Befolgen Sie die Schritte, die wir oben für die Mitarbeiter-Tabelle verwendet haben, und fügen Sie einer der Spalten in der Produkttabelle 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 EinheitenImLager-Spalte einen Standardwert von 0. Testen Sie Ihre Ergebnisse, nachdem Sie den Standardwert festgelegt haben.

Verwendung

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

Das Feld Spaltenverwendungstyp finden Sie im Abschnitt Erweitert des Bearbeitungsbildschirms einer Spalte. Die vollständige Liste der Optionen ist in Spaltenverwendungstypen verfügbar, aber die am häufigsten verwendeten sind wie folgt:

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

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

  • ENUM: Eine Abkürzung für "Enumeration", dieser Verwendungstyp verknüpft einen bedeutungsvollen String-Wert 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 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, 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: Spaltenverwendungstypen 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 in jeder UI-Komponente, die die Kategorie-Spalte als Titel verwendet, der App Builder 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 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 Sets 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 einem Set 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 finalen 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 über Löschberechtigungen verfügt, 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 Tabellendatensätze über CRUD-Regeln eingefügt werden.

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

    • Löschbar: Wenn aktiviert, können Tabellendatensätze ü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 meist 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 Sie die Order-Tabelle und wählen Sie sie 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 Elterntabelle, die die Datensätze für diese Beziehung eindeutig identifizieren.

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

        • Kaskadieren: 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 (Kaskadieren, Standard, Null und Verhindern) funktionieren ähnlich wie die Beim Löschen-Aktionen.

      • Sekundärtabelle: Identifiziert die Kindtabelle in der Beziehung (die "viele" Seite).

      • Sekundäre Spalten: Zeigt die Fremdschlüsselspalte(n) in der Kindtabelle, 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.