Sammlung: Konfigurationsparameter
name - Name der Sammlung
- Typ:
string - Erforderlich: ✅
- Beschreibung: Der eindeutige Bezeichner für die Sammlung, der innerhalb der gesamten Anwendung einmalig sein muss.
- Beispiel:
title - Titel der Sammlung
- Typ:
string - Erforderlich: ❌
- Beschreibung: Der Anzeigetitel der Sammlung, der in der Frontend-Oberfläche verwendet wird.
- Beispiel:
migrationRules - Migrationsregeln
- Typ:
MigrationRule[] - Erforderlich: ❌
- Beschreibung: Regeln für die Verarbeitung bei der Datenmigration.
- Beispiel:
inherits - Sammlungen erben
- Typ:
string[] | string - Erforderlich: ❌
- Beschreibung: Erbt Felddefinitionen von anderen Sammlungen. Unterstützt die Vererbung von einer oder mehreren Sammlungen.
- Beispiel:
filterTargetKey - Schlüssel für Zielfilterung
- Typ:
string | string[] - Erforderlich: ❌
- Beschreibung: Der Zielschlüssel, der für die Filterung von Abfragen verwendet wird. Unterstützt einzelne oder mehrere Schlüssel.
- Beispiel:
fields - Felddefinitionen
- Typ:
FieldOptions[] - Erforderlich: ❌
- Standardwert:
[] - Beschreibung: Ein Array von Felddefinitionen für die Sammlung. Jedes Feld enthält Informationen wie Typ, Name und Konfiguration.
- Beispiel:
model - Benutzerdefiniertes Modell
- Typ:
string | ModelStatic<Model> - Erforderlich: ❌
- Beschreibung: Gibt eine benutzerdefinierte Sequelize-Modellklasse an, die entweder der Klassenname oder die Modellklasse selbst sein kann.
- Beispiel:
repository - Benutzerdefiniertes Repository
- Typ:
string | RepositoryType - Erforderlich: ❌
- Beschreibung: Gibt eine benutzerdefinierte Repository-Klasse an, die die Datenzugriffslogik verarbeitet.
- Beispiel:
autoGenId - ID automatisch generieren
- Typ:
boolean - Erforderlich: ❌
- Standardwert:
true - Beschreibung: Legt fest, ob eine Primärschlüssel-ID automatisch generiert werden soll.
- Beispiel:
timestamps - Zeitstempel aktivieren
- Typ:
boolean - Erforderlich: ❌
- Standardwert:
true - Beschreibung: Legt fest, ob die Felder
createdAtundupdatedAtaktiviert werden sollen. - Beispiel:
createdAt - Feld für Erstellungszeitpunkt
- Typ:
boolean | string - Erforderlich: ❌
- Standardwert:
true - Beschreibung: Konfiguration für das Feld
createdAt. - Beispiel:
updatedAt - Feld für Aktualisierungszeitpunkt
- Typ:
boolean | string - Erforderlich: ❌
- Standardwert:
true - Beschreibung: Konfiguration für das Feld
updatedAt. - Beispiel:
deletedAt - Feld für Soft-Delete
- Typ:
boolean | string - Erforderlich: ❌
- Standardwert:
false - Beschreibung: Konfiguration für das Soft-Delete-Feld.
- Beispiel:
paranoid - Soft-Delete-Modus
- Typ:
boolean - Erforderlich: ❌
- Standardwert:
false - Beschreibung: Legt fest, ob der Soft-Delete-Modus aktiviert werden soll.
- Beispiel:
underscored - Unterstrich-Namenskonvention
- Typ:
boolean - Erforderlich: ❌
- Standardwert:
false - Beschreibung: Legt fest, ob die Unterstrich-Namenskonvention verwendet werden soll.
- Beispiel:
indexes - Index-Konfiguration
- Typ:
ModelIndexesOptions[] - Erforderlich: ❌
- Beschreibung: Konfiguration der Datenbankindizes.
- Beispiel:
Feld: Parameterkonfiguration
NocoBase unterstützt verschiedene Feldtypen, die alle auf der FieldOptions-Union-Typdefinition basieren. Die Feldkonfiguration umfasst grundlegende Eigenschaften, datentyp-spezifische Eigenschaften, Beziehungseigenschaften und Frontend-Rendering-Eigenschaften.
Grundlegende Feldoptionen
Alle Feldtypen erben von BaseFieldOptions und bieten allgemeine Konfigurationsmöglichkeiten für Felder:
Beispiel:
name - Feldname
- Typ:
string - Erforderlich: ❌
- Beschreibung: Der Spaltenname des Feldes in der Datenbank, der innerhalb der Sammlung eindeutig sein muss.
- Beispiel:
hidden - Feld ausblenden
- Typ:
boolean - Standardwert:
false - Beschreibung: Legt fest, ob dieses Feld standardmäßig in Listen und Formularen ausgeblendet werden soll.
- Beispiel:
validation - Validierungsregeln
- Typ:
ValidationOptions<T> - Beschreibung: Verwendet Joi, um serverseitige Validierungsregeln zu definieren.
- Beispiel:
allowNull - Null-Werte zulassen
- Typ:
boolean - Standardwert:
true - Beschreibung: Steuert, ob die Datenbank das Schreiben von
NULL-Werten zulässt. - Beispiel:
defaultValue - Standardwert
- Typ:
any - Beschreibung: Der Standardwert für das Feld, der verwendet wird, wenn beim Erstellen eines Datensatzes kein Wert für dieses Feld angegeben wird.
- Beispiel:
unique - Eindeutigkeitsbedingung
- Typ:
boolean | string - Standardwert:
false - Beschreibung: Legt fest, ob der Wert eindeutig sein muss. Ein String kann verwendet werden, um den Namen der Bedingung anzugeben.
- Beispiel:
primaryKey - Primärschlüssel
- Typ:
boolean - Standardwert:
false - Beschreibung: Deklariert dieses Feld als Primärschlüssel.
- Beispiel:
autoIncrement - Automatische Inkrementierung
- Typ:
boolean - Standardwert:
false - Beschreibung: Aktiviert die automatische Inkrementierung (nur für numerische Felder anwendbar).
- Beispiel:
field - Datenbank-Spaltenname
- Typ:
string - Beschreibung: Gibt den tatsächlichen Datenbank-Spaltennamen an (konsistent mit Sequenzes
field). - Beispiel:
comment - Datenbank-Kommentar
- Typ:
string - Beschreibung: Ein Kommentar für das Datenbankfeld, der zu Dokumentationszwecken verwendet wird.
- Beispiel:
title - Anzeigetitel
- Typ:
string - Beschreibung: Der Anzeigetitel für das Feld, der häufig in der Frontend-Oberfläche verwendet wird.
- Beispiel:
description - Feldbeschreibung
- Typ:
string - Beschreibung: Beschreibende Informationen über das Feld, um Benutzern zu helfen, dessen Zweck zu verstehen.
- Beispiel:
interface - Oberflächenkomponente
- Typ:
string - Beschreibung: Die empfohlene Frontend-Oberflächenkomponente für das Feld.
- Beispiel:
Feldtyp-Schnittstellen
type: 'string' - Zeichenkettenfeld
- Beschreibung: Dient zum Speichern kurzer Textdaten. Unterstützt Längenbeschränkungen und automatisches Trimmen.
- Datenbanktyp:
VARCHAR - Spezifische Eigenschaften:
length: Längenbeschränkung der Zeichenkette.trim: Legt fest, ob führende und nachfolgende Leerzeichen automatisch entfernt werden sollen.
Beispiel:
type: 'text' - Textfeld
- Beschreibung: Dient zum Speichern langer Textdaten. Unterstützt verschiedene Texttypen in MySQL.
- Datenbanktyp:
TEXT,MEDIUMTEXT,LONGTEXT - Spezifische Eigenschaften:
length: MySQL-Textlängentyp (tiny/medium/long).
Beispiel:
Numerische Typen
type: 'integer' - Ganzzahlenfeld
- Beschreibung: Dient zum Speichern von Ganzzahlendaten. Unterstützt automatische Inkrementierung und Primärschlüssel.
- Datenbanktyp:
INTEGER
Beispiel:
type: 'bigInt' - Großes Ganzzahlenfeld
- Beschreibung: Dient zum Speichern großer Ganzzahlendaten, mit einem größeren Wertebereich als
integer. - Datenbanktyp:
BIGINT
Beispiel:
type: 'float' - Gleitkommafeld
- Beschreibung: Dient zum Speichern von Gleitkommazahlen einfacher Genauigkeit.
- Datenbanktyp:
FLOAT - Spezifische Eigenschaften:
precision: Genauigkeit (Gesamtzahl der Ziffern).scale: Anzahl der Nachkommastellen.
Beispiel:
type: 'double' - Doppeltes Gleitkommafeld
- Beschreibung: Dient zum Speichern von Gleitkommazahlen doppelter Genauigkeit, die eine höhere Präzision als
floataufweisen. - Datenbanktyp:
DOUBLE - Spezifische Eigenschaften:
precision: Genauigkeit (Gesamtzahl der Ziffern).scale: Anzahl der Nachkommastellen.
Beispiel:
type: 'real' - Reales Zahlenfeld
- Beschreibung: Dient zum Speichern von reellen Zahlen; datenbankabhängig.
- Datenbanktyp:
REAL - Spezifische Eigenschaften:
precision: Genauigkeit (Gesamtzahl der Ziffern).scale: Anzahl der Nachkommastellen.
Beispiel:
type: 'decimal' - Dezimalfeld
- Beschreibung: Dient zum Speichern exakter Dezimalzahlen, geeignet für Finanzberechnungen.
- Datenbanktyp:
DECIMAL - Spezifische Eigenschaften:
precision: Genauigkeit (Gesamtzahl der Ziffern).scale: Anzahl der Nachkommastellen.
Beispiel:
Boolesche Typen
type: 'boolean' - Boolesches Feld
- Beschreibung: Dient zum Speichern von Wahr/Falsch-Werten, typischerweise für Ein/Aus-Zustände.
- Datenbanktyp:
BOOLEANoderTINYINT(1)
Beispiel:
type: 'radio' - Radio-Feld
- Beschreibung: Dient zum Speichern eines einzelnen ausgewählten Wertes, typischerweise für binäre Entscheidungen.
- Datenbanktyp:
BOOLEANoderTINYINT(1)
Beispiel:
Datums- und Uhrzeittypen
type: 'date' - Datumsfeld
- Beschreibung: Dient zum Speichern von Datumsdaten ohne Zeitinformationen.
- Datenbanktyp:
DATE - Spezifische Eigenschaften:
timezone: Legt fest, ob Zeitzoneninformationen enthalten sein sollen.
Beispiel:
type: 'time' - Zeitfeld
- Beschreibung: Dient zum Speichern von Zeitdaten ohne Datumsangaben.
- Datenbanktyp:
TIME - Spezifische Eigenschaften:
timezone: Legt fest, ob Zeitzoneninformationen enthalten sein sollen.
Beispiel:
type: 'datetimeTz' - Datums-/Uhrzeitfeld mit Zeitzone
- Beschreibung: Dient zum Speichern von Datums- und Uhrzeitdaten mit Zeitzoneninformationen.
- Datenbanktyp:
TIMESTAMP WITH TIME ZONE - Spezifische Eigenschaften:
timezone: Legt fest, ob Zeitzoneninformationen enthalten sein sollen.
Beispiel:
type: 'datetimeNoTz' - Datums-/Uhrzeitfeld ohne Zeitzone
- Beschreibung: Dient zum Speichern von Datums- und Uhrzeitdaten ohne Zeitzoneninformationen.
- Datenbanktyp:
TIMESTAMPoderDATETIME - Spezifische Eigenschaften:
timezone: Legt fest, ob Zeitzoneninformationen enthalten sein sollen.
Beispiel:
type: 'dateOnly' - Nur-Datumsfeld
- Beschreibung: Dient zum Speichern von Daten, die nur das Datum ohne Zeit enthalten.
- Datenbanktyp:
DATE - Beispiel:
type: 'unixTimestamp' - Unix-Zeitstempel-Feld
- Beschreibung: Dient zum Speichern von Unix-Zeitstempeldaten.
- Datenbanktyp:
BIGINT - Spezifische Eigenschaften:
epoch: Die Epochenzeit.
Beispiel:
JSON-Typen
type: 'json' - JSON-Feld
- Beschreibung: Dient zum Speichern von Daten im JSON-Format, unterstützt komplexe Datenstrukturen.
- Datenbanktyp:
JSONoderTEXT - Beispiel:
type: 'jsonb' - JSONB-Feld
- Beschreibung: Dient zum Speichern von Daten im JSONB-Format (PostgreSQL-spezifisch), das Indizierung und Abfragen unterstützt.
- Datenbanktyp:
JSONB(PostgreSQL) - Beispiel:
Array-Typen
type: 'array' - Array-Feld
- Beschreibung: Dient zum Speichern von Array-Daten, unterstützt verschiedene Elementtypen.
- Datenbanktyp:
JSONoderARRAY - Spezifische Eigenschaften:
dataType: Speichertyp (json/array).elementType: Elementtyp (STRING/INTEGER/BOOLEAN/JSON).
Beispiel:
type: 'set' - Set-Feld
- Beschreibung: Dient zum Speichern von Set-Daten, ähnlich einem Array, aber mit einer Eindeutigkeitsbedingung.
- Datenbanktyp:
JSONoderARRAY - Spezifische Eigenschaften:
dataType: Speichertyp (json/array).elementType: Elementtyp (STRING/INTEGER/BOOLEAN/JSON).
Beispiel:
Bezeichner-Typen
type: 'uuid' - UUID-Feld
- Beschreibung: Dient zum Speichern eindeutiger Bezeichner im UUID-Format.
- Datenbanktyp:
UUIDoderVARCHAR(36) - Spezifische Eigenschaften:
autoFill: Automatische Befüllung.
Beispiel:
type: 'nanoid' - Nanoid-Feld
- Beschreibung: Dient zum Speichern kurzer, eindeutiger Bezeichner im Nanoid-Format.
- Datenbanktyp:
VARCHAR - Spezifische Eigenschaften:
size: Länge der ID.customAlphabet: Benutzerdefinierter Zeichensatz.autoFill: Automatische Befüllung.
Beispiel:
type: 'uid' - Benutzerdefiniertes UID-Feld
- Beschreibung: Dient zum Speichern eindeutiger Bezeichner in einem benutzerdefinierten Format.
- Datenbanktyp:
VARCHAR - Spezifische Eigenschaften:
prefix: Präfix.pattern: Validierungsmuster.
Beispiel:
type: 'snowflakeId' - Snowflake-ID-Feld
- Beschreibung: Dient zum Speichern eindeutiger Bezeichner, die mit dem Snowflake-Algorithmus generiert wurden.
- Datenbanktyp:
BIGINT - Beispiel:
Funktionsfelder
type: 'password' - Passwortfeld
- Beschreibung: Dient zum Speichern verschlüsselter Passwortdaten.
- Datenbanktyp:
VARCHAR - Spezifische Eigenschaften:
length: Hash-Länge.randomBytesSize: Größe der Zufallsbytes.
Beispiel:
type: 'encryption' - Verschlüsselungsfeld
- Beschreibung: Dient zum Speichern verschlüsselter sensibler Daten.
- Datenbanktyp:
VARCHAR - Beispiel:
type: 'virtual' - Virtuelles Feld
- Beschreibung: Dient zum Speichern von berechneten virtuellen Daten, die nicht in der Datenbank gespeichert werden.
- Datenbanktyp: Keine (virtuelles Feld)
- Beispiel:
type: 'context' - Kontextfeld
- Beschreibung: Dient zum Lesen von Daten aus dem Laufzeitkontext (z. B. aktuelle Benutzerinformationen).
- Datenbanktyp: Bestimmt durch
dataType. - Spezifische Eigenschaften:
dataIndex: Datenindexpfad.dataType: Datentyp.createOnly: Nur bei Erstellung festlegen.
Beispiel:
Beziehungsfelder
type: 'belongsTo' - Gehört-zu-Beziehung
- Beschreibung: Stellt eine Viele-zu-Eins-Beziehung dar, bei der der aktuelle Datensatz zu einem anderen Datensatz gehört.
- Datenbanktyp: Fremdschlüsselfeld
- Spezifische Eigenschaften:
target: Name der Zielsammlung.foreignKey: Name des Fremdschlüsselfeldes.targetKey: Name des Zielfeldes in der Zielsammlung.onDelete: Kaskadenaktion beim Löschen.onUpdate: Kaskadenaktion beim Aktualisieren.constraints: Legt fest, ob Fremdschlüsselbeschränkungen aktiviert werden sollen.
Beispiel:
type: 'hasOne' - Hat-eine-Beziehung
- Beschreibung: Stellt eine Eins-zu-Eins-Beziehung dar, bei der der aktuelle Datensatz einen zugehörigen Datensatz besitzt.
- Datenbanktyp: Fremdschlüsselfeld
- Spezifische Eigenschaften:
target: Name der Zielsammlung.foreignKey: Name des Fremdschlüsselfeldes.sourceKey: Name des Quellschlüsselfeldes in der Quellsammlung.onDelete: Kaskadenaktion beim Löschen.onUpdate: Kaskadenaktion beim Aktualisieren.constraints: Legt fest, ob Fremdschlüsselbeschränkungen aktiviert werden sollen.
Beispiel:
type: 'hasMany' - Hat-viele-Beziehung
- Beschreibung: Stellt eine Eins-zu-Viele-Beziehung dar, bei der der aktuelle Datensatz mehrere zugehörige Datensätze besitzt.
- Datenbanktyp: Fremdschlüsselfeld
- Spezifische Eigenschaften:
target: Name der Zielsammlung.foreignKey: Name des Fremdschlüsselfeldes.sourceKey: Name des Quellschlüsselfeldes in der Quellsammlung.sortBy: Sortierfeld.sortable: Legt fest, ob das Feld sortierbar ist.onDelete: Kaskadenaktion beim Löschen.onUpdate: Kaskadenaktion beim Aktualisieren.constraints: Legt fest, ob Fremdschlüsselbeschränkungen aktiviert werden sollen.
Beispiel:
type: 'belongsToMany' - Gehört-zu-vielen-Beziehung
- Beschreibung: Stellt eine Viele-zu-Viele-Beziehung dar, die zwei Sammlungen über eine Zwischen- oder Verknüpfungstabelle verbindet.
- Datenbanktyp: Zwischen- oder Verknüpfungstabelle
- Spezifische Eigenschaften:
target: Name der Zielsammlung.through: Name der Zwischen- oder Verknüpfungstabelle.foreignKey: Name des Fremdschlüsselfeldes.otherKey: Der andere Fremdschlüssel in der Zwischen- oder Verknüpfungstabelle.sourceKey: Name des Quellschlüsselfeldes in der Quellsammlung.targetKey: Name des Zielfeldes in der Zielsammlung.onDelete: Kaskadenaktion beim Löschen.onUpdate: Kaskadenaktion beim Aktualisieren.constraints: Legt fest, ob Fremdschlüsselbeschränkungen aktiviert werden sollen.
Beispiel:

