Zum Inhalt springen

Data Builder

Der Archie Core Data Builder ist eine Datenmodellierungsoberfläche zum Definieren von Datenbanktabellen, Feldtypen und Beziehungen zwischen Tabellen.

Um den Data Builder zu öffnen, klicken Sie in der Seitenleiste auf Datenmodell, wählen Sie die Tabelle aus, an der Sie arbeiten möchten, und klicken Sie dann auf die Registerkarte Schema.

alt text

Für jede definierte Tabelle erstellt die GraphQL-Engine von Archie Core automatisch GraphQL-Schema-Objekttypen und die entsprechenden Abfrage-, Mutations- und Abonnementfelder mit Resolvern.

Dies bedeutet, dass alle Aktionen Erstellen, Lesen, Aktualisieren und Löschen (CRUD) sowie Echtzeitverbindungen (Websockets) sofort über den eindeutigen API-Endpunkt des Arbeitsbereichs verfügbar sind.

Im Hintergrund stellt Archie Core eine dedizierte PostgreSQL-Datenbankinstanz für Ihren Arbeitsbereich bereit. PostgreSQL ist eine fortschrittliche objektrelationale Open-Source-Datenbank, die für ihre Zuverlässigkeit und Datenintegrität bekannt ist. Sie verarbeitet effizient komplexe Abfragen und unterstützt die ACID-Konformität (Atomicity, Consistency, Isolation, Durability) vollständig.

Klicken Sie auf die Schaltfläche + Tabelle hinzufügen (+ Add Table), um eine neue Tabelle zu erstellen. Der Standardname für neue Tabellen ist “untitled_table”. Alle Tabellen erfordern eindeutige Namen (die Namen attribute, workspace und ihre Pluralform sind reserviert und können in keiner Groß-/Kleinschreibung verwendet werden).

Sobald eine Tabelle erstellt ist, werden die entsprechenden GraphQL-Schematypen und Abfrage-, Mutations- und Abonnement-Resolver automatisch generiert.

alt text

Nachdem eine Tabelle erstellt wurde, können Felder und Beziehungen definiert werden. Alle Aktualisierungen einer Tabelle werden in Echtzeit veröffentlicht, was ein nahtloses Erlebnis zwischen der Definition eines Datenmodells und dessen hoher Verfügbarkeit bietet.

Sobald eine Tabelle aktualisiert wird, werden ihre entsprechenden GraphQL-Schematypen und Abfrage-, Mutations- und Abonnement-Resolver automatisch aktualisiert.

Um sicherzustellen, dass tabellenbezogene Fehler minimiert werden, schützt Archie Core vor vielen schädlichen Aktionen. Einige davon sind:

  • Eine Eingabeaufforderung, die einen Standardwert erfordert, erscheint, wenn ein nicht obligatorisches Feld in obligatorisch geändert wird.
  • Datums-, Zahlen- und Textfeldwerte werden automatisch konvertiert, wenn ein vorhandener Feldtyp aktualisiert wird.
  • Wenn ein nicht eindeutiges Feld in eindeutig geändert wird, werden aktuelle Datensätze auf eindeutige Werte überprüft.

So löschen Sie eine Tabelle:

  1. Gehen Sie zum Tabellennamen und klicken Sie auf ...
  2. Klicken Sie auf Diese Tabelle löschen (Delete this Table).
  3. Ein Bestätigungsdialog wird geöffnet. Geben Sie den Tabellennamen ein und klicken Sie auf Löschen (Delete).

Gefahr: Gelöschte Tabellen können nicht wiederhergestellt werden und alle vorhandenen Tabellendatensätze gehen verloren. Wenn es Tabellen gibt, die mit der zu löschenden Tabelle in Beziehung stehen - gehört zu und hat viele, egal ob als obligatorisch angegeben oder nicht - werden diese Beziehungen getrennt.

alt text

Archie Core unterstützt die Definition von drei Arten von Tabellenbeziehungen, die mit dem übereinstimmen, was von relationalen Datenbanken zu erwarten ist:

TypA zu BB zu A
eins-zu-einsDatensätze in Tabelle A können Datensätze in Tabelle B haben_einen (have_one) oder gehören_zu (belong_to).Datensätze in Tabelle B können Datensätze in Tabelle A haben_einen (have_one) oder gehören_zu (belong_to).
eins-zu-vieleEin Datensatz in Tabelle A kann viele_haben (have_many) Datensätze in Tabelle B.Datensätze in Tabelle B können Datensätze in Tabelle A haben_einen (have_one) oder gehören_zu (belong_to).

alt text

Das Definieren einer Beziehung zwischen zwei Tabellen kann erreicht werden, indem eine Tabelle auf eine andere gezogen wird oder indem Tabelle als Datentyp ausgewählt wird, wenn ein neues Tabellenfeld erstellt wird.

Zum Spezifizieren von hat viele, hat einen und gehört zu Beziehungen zwischen Tabellen.

Konfigurationen

  • Name: Zum Auswählen, welche Tabelle in Beziehung gesetzt werden soll.
  • Verknüpfte Tabelle: Der Name der Beziehung, wie er in der entsprechenden Tabelle erscheint.
  • Typ: Ob die Beziehung hat einen oder hat viele ist.
  • Beschreibung: Ein optionales Textfeld, in das Sie Informationen über das Feld schreiben können.
  • Obligatorisch: Ob die Feldbeziehung erforderlich ist.

Es gibt drei Tabellentypen: Benutzerdefiniert (Custom), Ansicht (View) und Datentyp (Data Type).

Benutzerdefinierte Tabellen sind die Tabellen, die in jedem Arbeitsbereich von einem Administrator erstellt werden. Sie sind vollständig anpassbar.

Ansichtstabellen sind virtuelle Tabellen, die Felder aus mehreren Tabellen in einer einzigen Ansicht aggregieren. Unter der Haube basieren sie auf dem Ergebnissatz einer SQL-Anweisung. In einem Arbeitsbereich können sie mit der GraphQL-Mutation viewCreate im API Explorer erstellt werden.

Typen ermöglichen es Ihnen, einen statischen, geordneten Satz von sich gegenseitig ausschließenden Werten zu definieren. Im Gegensatz zu Standardtextfeldern beschränkt ein Enum die Dateneingabe auf eine bestimmte Liste vordefinierter Konstanten.

Häufige Beispiele sind Statusindikatoren (z. B. ENTWURF, VERÖFFENTLICHT, ARCHIVIERT), Benutzerrollen oder Kategoriebeschriftungen.

Die Verwendung von Enums in Ihrem Datenbankschema bietet mehrere wichtige Vorteile:

  • Datenintegrität: Enums erzwingen eine strenge Datenvalidierung auf Datenbankebene. Da das Feld nur Werte aus der definierten Liste akzeptiert, werden Fehler durch Tippfehler oder inkonsistente Benennungskonventionen vermieden (z. B. Verhinderung einer Mischung aus “Hoch”, “hoch” und “Hi” für ein Prioritätsfeld).
  • Code-Konsistenz: Sie bieten eine einzige Quelle der Wahrheit für zulässige Werte, wodurch die Anwendungslogik vorhersehbarer und einfacher zu warten ist.
  • Lesbarkeit: Enums machen Daten selbstbeschreibend. Ein Wert wie ZAHLUNG_FEHLGESCHLAGEN ist für Entwickler und Analysten viel aussagekräftiger als ein willkürlicher numerischer Code wie fehlercode: 3.
  • Leistung: In PostgreSQL werden Enums unter der Haube effizient gespeichert, aber als lesbare Zeichenfolgen dargestellt, was ein Gleichgewicht zwischen Leistung und menschlicher Lesbarkeit bietet.