KEPLIN Docs

Tabellen und Felder

Der Modell-Editor — Tabellen anlegen, Spaltentypen wählen, Schlüssel und Indizes festlegen und vorhandene Tabellen ins Modell der App holen.

Bevor es Bildschirme gibt, gibt es Daten: die Tabellen, in denen die Anwendung Konten, Kontakte, Bestellungen oder Urlaubsanträge speichert. In Keplin leben diese Daten in einer mit der App verbundenen Datenbank (einer Datenquelle) und werden in einem Modell beschrieben — dem Entwurf aus Tabellen, Feldern, Schlüsseln und Beziehungen, den der gesamte Rest der Plattform liest.

Diese Seite behandelt die erste Hälfte dieser Arbeit: Tabellen anlegen und ändern, Typen wählen, Schlüssel und Indizes festlegen. Die Beziehungen und die Aufzählungsfelder haben eine eigene Seite unter Beziehungen und Enums.

Die Beispiele stammen aus der App Kundenverwaltung: ein CRM mit drei Tabellen — contas, contactos und oportunidades.

Zwei Schichten: die Datenbank und das Modell

Es lohnt sich, gleich zu Beginn zwei Dinge zu trennen, die sich ähneln:

Schicht Was es ist Wer sie nutzt
Die Datenbank Die Tabellen, Spalten und Indizes, die tatsächlich in der mit der App verbundenen Engine existieren. Die Datenbank-Engine. Sie zu ändern heißt, echte Befehle auszuführen.
Das Modell Die Beschreibung dieser Tabellen für die Plattform: Entitäten, Felder, Anzeigenamen, Beschreibungen, Beziehungen und Enums. Die APIs, die Bildschirme, die Skripte und die Berichte.

Eine Tabelle kommt erst ins Modell, wenn Sie sie importieren — und aus dem Modell auszutreten löscht nichts in der Datenbank. Deshalb unterscheidet die Plattform immer zwischen Aus dem Modell entfernen und Löschen.

Das Modell öffnen

  1. Öffnen Sie die App und wählen Sie den Tab Daten in der Seitenleiste.
  2. Klicken Sie unter Datenquellen auf den Namen der Datenquelle — in der Kundenverwaltung Dados CRM.
  3. Es öffnet sich ein Tab mit dem Modelldiagramm in der Mitte, der SQL-Konsole unten und dem aufgeklappten Objektbaum der Datenquelle in der Seitenleiste.

Das Modell der App Kundenverwaltung: die Entitäten Contas, Contactos und Oportunidades, mit den beiden Beziehungen dazwischen.
Das Modell der App Kundenverwaltung: die Entitäten Contas, Contactos und Oportunidades, mit den beiden Beziehungen dazwischen.

Das Diagramm lässt sich mit der Maus verschieben; die Buttons in der unteren linken Ecke zoomen und rücken alles ins Bild. Die Position jeder Entität wird gespeichert — Sie räumen das Diagramm einmal auf, und so öffnet es sich wieder.

Der Objektbaum

Unterhalb der Datenquelle zeigt der Baum, was in der Datenbank existiert, gruppiert und mit der Anzahl je Gruppe:

Gruppe Was dort steht
Tabellen Die Tabellen der Engine. Jede hat ihr eigenes Menü (⋯).
Ansichten Die Views (gespeicherte Abfragen mit Namen).
Programmierung Funktionen / Prozeduren und Trigger — siehe Trigger.

Der Objektbaum der Datenquelle: Tabellen, Ansichten und Programmierung, mit der Anzahl je Gruppe.
Der Objektbaum der Datenquelle: Tabellen, Ansichten und Programmierung, mit der Anzahl je Gruppe.

Das Feld Überall suchen… oben in der Seitenleiste filtert den Baum; bei aktiver Suche klappen die Gruppen von selbst auf, und eine Gruppe ohne Treffer verschwindet.

Eine Tabelle anlegen

  1. Fahren Sie mit der Maus über die Datenquelle und öffnen Sie das Menü (Aktionen für …).
  2. Wählen Sie Neue Tabelle.
  3. Füllen Sie Name der Tabelle aus — das ist der Name, der in der Datenbank landet (Kleinbuchstaben und Unterstriche ersparen Ihnen Kopfschmerzen: actividades, linhas_encomenda).
  4. Schema (optional) ist nur bei Engines mit Schemas interessant; lassen Sie es leer, wenn Sie keine verwenden.
  5. Schreiben Sie unter Beschreibung der Tabelle, wofür sie da ist. Das ist keine Dekoration: Diese Beschreibung begleitet die Tabelle in der Plattform und erklärt sie demjenigen, der nach Ihnen dort ankommt.
  6. Definieren Sie die Spalten (siehe unten) und bestätigen Sie mit Tabelle erstellen.

Der Dialog Neue Tabelle — Name, optionales Schema und die Beschreibung, die erklärt, wofür sie da ist.
Der Dialog Neue Tabelle — Name, optionales Schema und die Beschreibung, die erklärt, wofür sie da ist.

Nota

Die Tabelle wird wirklich angelegt, in der verbundenen Datenbank. Wenn die Verbindung zu einer Produktionsdatenbank führt, entsteht die Tabelle dort.

Die Spalten

Die linke Seite des Dialogs ist die Spaltenliste (Spalten (N)), und der Button + fügt eine hinzu. Klicken Sie auf eine Spalte in der Liste, um sie rechts zu bearbeiten.

Die Tabelle beginnt immer mit einer Spalte id vom Typ integer, mit aktiviertem Primärschlüssel (PK) und Auto-Inkrement — der Start, der bei 9 von 10 Tabellen passt.

Feld Was es tut
Name Der Name der Spalte in der Datenbank.
Typ Der logische Typ der Spalte (vollständige Liste unten).
Länge Nur bei text und char — wie viele Zeichen hineinpassen.
Genauigkeit · Skala Nur bei decimal — Gesamtzahl der Stellen und wie viele davon rechts vom Komma stehen (18 · 2 für Geld).
Enum-Einträge Nur bei enum — siehe Beziehungen und Enums.
NULL erlaubt Ob die Spalte leer bleiben darf. Ausgeschaltet weist die Datenbank Datensätze ohne Wert zurück.
Primärschlüssel (PK) Identifiziert den Datensatz eindeutig.
Auto-Inkrement Die Engine erzeugt den Wert bei jedem Einfügen.
Beschreibung Wofür diese Spalte da ist.

Eine neue Spalte im Dialog Neue Tabelle: Name, Typ und die Schalter NULL erlaubt, Primärschlüssel (PK) und Auto-Inkrement.
Eine neue Spalte im Dialog Neue Tabelle: Name, Typ und die Schalter NULL erlaubt, Primärschlüssel (PK) und Auto-Inkrement.

Der Papierkorb, der beim Überfahren einer Spalte in der Liste erscheint, entfernt sie (in einer neuen Tabelle verschwindet sie sofort aus der Liste).

Die Spaltentypen

Die Typen sind logisch: Sie beschreiben, was die Spalte speichert, und die Plattform übersetzt das in den richtigen Typ der verbundenen Engine. Derselbe Entwurf passt zu jeder unterstützten Datenbank.

Typ Wofür
text Text variabler Länge — Namen, Beschreibungen, Notizen.
char Text fester Länge — Ländercodes, Kürzel.
integer Ganze Zahlen. Der natürliche Typ einer id.
smallint Kleine ganze Zahlen.
bigint Große ganze Zahlen — Zähler, externe Identifikatoren.
decimal Exakte Zahlen mit Nachkommastellen. Der Typ für Geld.
float Näherungswerte — Messungen, wissenschaftliche Prozentsätze.
boolean Ja/Nein.
date Ein Datum, ohne Uhrzeit.
time Eine Uhrzeit, ohne Datum.
datetime Datum und Uhrzeit.
uuid Universelle Identifikatoren.
json Freie Strukturen, als strukturierter Text gespeichert.
binary Binärer Inhalt.
enum Eine geschlossene Wertemenge, direkt dort definiert — siehe Beziehungen und Enums.

Die Liste der Spaltentypen — logische Typen, gleich in jeder verbundenen Datenbank.
Die Liste der Spaltentypen — logische Typen, gleich in jeder verbundenen Datenbank.

Dica

Für Geldbeträge verwenden Sie decimal mit Genauigkeit und Skala (18 · 2), niemals float. float speichert Näherungen — und ein durch Rundung verlorener Cent auf einer Rechnung ist ein Problem, das Monate später auftaucht.

Primärschlüssel

Der Primärschlüssel (PK) ist das, was einen Datensatz identifiziert. In der Praxis ist er nicht optional: Ohne PK kann eine Tabelle gelesen, aber weder bearbeitet noch gelöscht werden — die Tabelle meldet Der Datastore braucht einen Primärschlüssel., und das Kanban schaltet das Ziehen ab. Besteht der Schlüssel aus mehr als einer Spalte, aktivieren Sie Primärschlüssel (PK) bei jeder davon.

Auto-Inkrement überlässt der Engine die Arbeit des Nummerierens. Das ergibt nur bei Ganzzahlspalten Sinn.

Eine Tabelle ins Modell holen

Eine Tabelle, die in der Datenbank bereits existiert (von Ihnen hier angelegt oder schon vorher vorhanden), muss ins Modell, damit die APIs und die Bildschirme sie sehen. Es gibt zwei Wege, und sie laufen auf dasselbe hinaus:

  • Die Tabelle aus dem Baum ins Diagramm ziehen — sie landet dort, wo Sie sie fallen lassen.
  • Das Menü der Tabelle öffnen und Ins Modell importieren wählen.

Die Plattform liest die Struktur der Tabelle und erzeugt die Entität: einen Namen mit großem Anfangsbuchstaben (contasContas), die Felder, die Schlüssel und die Beziehungen, die sie in der Datenbank deklariert vorfindet.

Das Aktionsmenü einer Tabelle: Struktur bearbeiten, Daten anzeigen, Ins Modell importieren und Löschen.
Das Aktionsmenü einer Tabelle: Struktur bearbeiten, Daten anzeigen, Ins Modell importieren und Löschen.

Die Karte einer Entität

Jede Entität ist eine Karte im Diagramm:

  • Der Name der Entität in der Kopfzeile und zwei Buttons: Im Baum finden (markiert die zugehörige Tabelle in der Seitenleiste) und Aus dem Modell entfernen.
  • Ein Feld pro Zeile, mit dem Namen links und dem Typ rechts. Die Markierung PK kennzeichnet den Primärschlüssel, und ein ! nach dem Typ bedeutet, dass das Feld nicht leer bleiben darf.
  • Aufzählungsfelder erscheinen kursiv, mit dem Namen des Enums anstelle des Typs.
  • Bei vielen Feldern schrumpft die Karte und bietet N weitere Felder anzeigen / Weniger anzeigen an.
  • Unten listet der Abschnitt Navigation die Wege zu den verwandten Entitäten — Thema von Beziehungen und Enums.

Die Karte der Entität Contas: die Felder mit dem Typ rechts, die Markierung PK und das ! der Felder, die nicht leer bleiben dürfen.
Die Karte der Entität Contas: die Felder mit dem Typ rechts, die Markierung PK und das ! der Felder, die nicht leer bleiben dürfen.

Atenção

Aus dem Modell entfernen tut genau das: Die Entität mit ihren Feldern und Beziehungen verlässt das Modell der Plattform, und die Tabelle in der Datenbank wird nicht angerührt. Was aufhört zu funktionieren, sind die APIs, die diese Entität genutzt haben.

Eine Tabelle ändern

Das Menü einer Tabelle → Struktur bearbeiten öffnet den Struktur- Editor mit zwei Tabs: Spalten und Indizes (N).

Struktur der Tabelle contas bearbeiten: die Spalten links, das Detail der Spalte rechts und Änderungen anwenden in der Fußzeile.
Struktur der Tabelle contas bearbeiten: die Spalten links, das Detail der Spalte rechts und Änderungen anwenden in der Fußzeile.

Oben stehen die drei Dinge, die die Tabelle beschreiben:

Feld Was es ist
Name in der DB Der echte Name der Tabelle.
Anzeigename (Apps) Der Name, unter dem die Tabelle in der App bekannt ist.
Beschreibung der Tabelle Wofür sie da ist.

Der Anzeigename (Apps) ist die Brücke zwischen einer geerbten Datenbank und einer lesbaren App: Die Spalte kann in der Datenbank cli_nm_fis heißen und in der App nome. Es gibt ihn auch je Spalte — und es ist der Anzeigename, der in den APIs, in den Datastores und in den Bildschirmen erscheint.

An den Spalten arbeiten

Klicken Sie auf eine Spalte in der linken Liste, um sie zu bearbeiten. Die Änderungen sind nicht sofort wirksam: Sie sammeln sich an und geschehen erst, wenn Sie auf Änderungen anwenden klicken.

  • Eine mit + hinzugefügte Spalte ist als neu markiert und trägt den Hinweis Neue Spalte — wird beim Anwenden der Änderungen erstellt.
  • Eine vorhandene Spalte zu löschen (der Papierkorb am Zeilenende) durchstreicht sie und zeigt Zum Löschen (DROP) beim Anwenden markiert.; Rückgängig macht es rückgängig.
  • Wenn es nichts anzuwenden gibt, sagt die Plattform Keine Änderungen.

Die Spalte estado ausgewählt: Name in der DB, Typ, Anzeigename (Apps) und die Beschreibung.
Die Spalte estado ausgewählt: Name in der DB, Typ, Anzeigename (Apps) und die Beschreibung.

Atenção

Den Typ einer bereits vorhandenen Spalte zu ändern hängt von der Engine ab. Manche Engines können das nicht, und die Plattform sagt es Ihnen, statt es blind zu versuchen — der Ausweg ist in diesen Fällen, eine neue Spalte anzulegen, die Daten hinüberzuschaffen und die alte zu löschen. Eine Spalte zu löschen löscht die Daten, die darin stehen: Nach Änderungen anwenden gibt es kein Rückgängig.

Indizes

Der Tab Indizes (N) listet die Indizes der Tabelle auf — Name, Markierung unique und die Spalten — und erlaubt, welche anzulegen und zu löschen.

So legen Sie einen Index an:

  1. Schreiben Sie den Namen (die Konvention ix_irgendetwas ist gut, und das Feld schlägt sie auch vor).
  2. Setzen Sie unique, wenn der Index auch dazu dient, wiederholte Werte zu verhindern — so stellt man sicher, dass es keine zwei Kunden mit derselben Steuernummer gibt.
  3. Klicken Sie auf die Spalten, die zum Index gehören (die Reihenfolge Ihrer Klicks ist die Reihenfolge des Index).
  4. Index erstellen.

Der Tab Indizes der Tabelle contas: keine Indizes außer dem PK, und darunter das Formular Neuer Index.
Der Tab Indizes der Tabelle contas: keine Indizes außer dem PK, und darunter das Formular Neuer Index.

Eine Tabelle ohne eigene Indizes meldet Keine Indizes (außer dem PK). — der Primärschlüssel ist bereits ein Index und muss nicht angelegt werden.

Dica

Die Indizes, auf die es ankommt, sind die der Spalten, nach denen täglich gefiltert und sortiert wird: die conta_id einer Detailtabelle, das Datum einer Historie, der Status, nach dem die Liste gefiltert wird. Zu viele Indizes machen die Schreibvorgänge langsamer — legen Sie sie nicht „vorsichtshalber“ an.

Die Daten ansehen

Das Menü einer Tabelle → Daten anzeigen öffnet unten die SQL-Konsole, mit der bereits ausgeführten Abfrage und dem Ergebnis vor Augen. Das ist der schnelle Weg, um zu prüfen, was dort steht, ohne das Modell zu verlassen.

Daten anzeigen öffnet die SQL-Konsole mit der bereits ausgeführten Abfrage — die echten Zeilen der Tabelle, unter dem Modell.
Daten anzeigen öffnet die SQL-Konsole mit der bereits ausgeführten Abfrage — die echten Zeilen der Tabelle, unter dem Modell.

Die Konsole nimmt auch von Ihnen geschriebenes SQL an: links schreiben, Ausführen, und das Ergebnis erscheint rechts mit der Zeilenanzahl. Die Leiste, die die Konsole vom Diagramm trennt, lässt sich ziehen, und der Pfeil in der Ecke klappt sie ein.

Eine Tabelle löschen

Das Menü einer Tabelle enthält Löschen, mit Bestätigung: Dieser Vorgang ist endgültig und entfernt das Objekt aus der Datenbank. Nicht zu verwechseln mit Aus dem Modell entfernen, das nur die Entität aus der Beschreibung der App nimmt.

Warum nicht…?

  • Warum sehe ich meine Tabelle nicht in den APIs? Wahrscheinlich ist sie noch nicht im Modell. Ziehen Sie sie aus dem Baum ins Diagramm, oder nutzen Sie Ins Modell importieren.
  • Warum habe ich eine Spalte angelegt und sie erscheint nicht? Prüfen Sie, ob Sie auf Änderungen anwenden geklickt haben — im Struktur-Editor geschieht vorher nichts.
  • Warum lässt meine neue Tabelle keine Datensätze in den Bildschirmen bearbeiten? Es fehlt der Primärschlüssel (PK). Ohne ihn können die Bildschirme nur lesen.
  • Warum kann ich den Typ einer Spalte nicht ändern? Es gibt Engines ohne „Spalte ändern“. Die Plattform weist Sie darauf hin, und der Weg ist: neue Spalte → Daten kopieren → alte löschen.
  • Warum ist der Feldname in der App nicht der aus der Datenbank? Für diese Spalte ist der Anzeigename (Apps) gesetzt. Das ist Absicht — und wird an derselben Stelle bearbeitet.
  • Warum ist die Entität aus dem Diagramm verschwunden, aber die Tabelle steht weiter im Baum? Sie wurde aus dem Modell entfernt. Ziehen Sie sie erneut aus dem Baum ins Diagramm.