Grundlegende Schema-Struktur
Entity-Schemas werden in JSON-Dateien im Entities-Verzeichnis deines Projekts definiert. Standardmäßig ist dasbase44/entities/, aber du kannst den Pfad in deiner Projektkonfiguration anpassen. Der Dateiname bestimmt den Entitätsnamen. Zum Beispiel erstellt Task.json eine Task-Entität.
Hier ist ein Schema-Template für eine Entität:
Integrierte Felder
Jeder Entity-Datensatz enthält automatisch die folgenden Felder. Definiere in deinem Schema keine Felder mit diesen Namen.
Interne Felder werden nicht in API-Antworten zurückgegeben, können aber in Sicherheitsregeln referenziert werden.
Schema-Felder
string
String-Identifier für die Entität.
string
erforderlich
Muss
"object" sein.string
Benutzerfreundlicher Anzeigename.
string
Beschreibung dessen, was die Entität darstellt.
object
erforderlich
Objekt, das deine Felddefinitionen enthält. Jedes Feld hat einen
type und optionale
Validierungsregeln.Feldtypen
Entitäten unterstützen verschiedene Feldtypen, um unterschiedliche Arten von Daten zu definieren, die du speichern kannst:string, integer, number, boolean, array und object.
Jedes Feld innerhalb von properties benötigt einen type. Je nach Typ kannst du Validierungsoptionen hinzufügen.
String-Felder
String-Felder unterstützen diese Optionen:minLength/maxLength: Steuern die minimale und maximale Zeichenanzahl.pattern: Regulärer Ausdruck für eigene Validierung.format: Vordefinierte Formate. Unterstützte Werte:"date""date-time""time""email""uri""hostname""ipv4""ipv6""uuid"
enum: Beschränkt auf bestimmte erlaubte Werte. Als Array definieren:["value1", "value2", "value3"].default: Standardwert, falls keiner angegeben wird.
Integer-Felder
Integer-Felder unterstützen diese Optionen:minimum/maximum: Inklusive Unter-/Obergrenzen.default: Standardwert, falls keiner angegeben wird.
Number-Felder
Number-Felder unterstützen diese Optionen:minimum/maximum: Inklusive Unter-/Obergrenzen.default: Standardwert, falls keiner angegeben wird.
Boolean-Felder
Boolean-Felder unterstützen diese Optionen:default: Standardwert, falls keiner angegeben wird.
Array-Felder
Array-Felder unterstützen diese Optionen:items: Definiert den Typ/das Schema der Array-Elemente.default: Standardwert für das Array, falls keiner angegeben wird.
Object-Felder
Object-Felder unterstützen diese Optionen:properties: Definiert die Felder innerhalb des Objekts.required: Liste der erforderlichen Eigenschaftsnamen.
Erforderliche Felder
Lege fest, welche Felder angegeben werden müssen:Eindeutigkeit
Base44-Entitäten unterstützen keine Uniqueness-Constraints. Eine Eigenschaft, die nicht Teil des Schema-Formats ist, wie etwaunique_fields, wird zusammen mit deinem Schema gespeichert und ignoriert.
Um doppelte Datensätze zu vermeiden, prüfe in einer Backend-Funktion auf einen bestehenden Datensatz, bevor du einen neuen anlegst. Eine solche Prüfung verkleinert das Zeitfenster für Duplikate, schließt es aber nicht. Damit nur ein Nutzer erfolgreich ist, nutze das Claim-Muster unter Gleichzeitige Aktualisierungen.
Gleichzeitige Aktualisierungen
Base44 sperrt keine Datensätze und führt keine Transaktionen über mehrere Datensätze aus. Ändern 2 Nutzer oder Prozesse gleichzeitig dieselben Daten, wird jeder Schreibvorgang für sich angewendet. Dieser Abschnitt zeigt, welche Updates atomar sind und wie du einen Datensatz sicher beanspruchst. Außerdem erfährst du, was du von Aufrufen erwarten kannst, die mehrere Datensätze schreiben.Einen Datensatz sicher beanspruchen
Damit nur ein Nutzer einen bestehenden Datensatz beanspruchen kann, etwa eine Aufgabe oder einen Buchungsslot, rufeupdateMany() auf. Übergib die id dieses einzelnen Datensatzes und die Bedingungen, die noch erfüllt sein müssen. Das Update wird nur angewendet, wenn diese Bedingungen beim Schreiben noch zutreffen. Versuchen es 2 Nutzer gleichzeitig, ist also nur einer erfolgreich. Prüfe updated in der Antwort, um zu sehen, ob deiner erfolgreich war.
Mehrere Datensätze schreiben
bulkCreate(), bulkUpdate(), updateMany(), deleteMany() und upsert() sind keine Transaktionen. Jeder Datensatz wird für sich geschrieben. Schlägt ein Aufruf mittendrin fehl, bleiben die bereits geschriebenen Datensätze erhalten. Gestalte diese Aufrufe so, dass du sie sicher erneut ausführen kannst. Filtere zum Beispiel Datensätze heraus, die bereits aktualisiert wurden.
Gleichzeitige upsert()-Aufrufe mit demselben Schlüssel können doppelte Datensätze erzeugen.
Vollständiges Beispiel
Hier ist ein vollständiges Entity-Schema:Entitäten deployen
Nachdem du dein Entity-Schema definiert hast, deploye es mitentities push zu Base44. Entitäten werden außerdem automatisch deployed, wenn du den deploy-Befehl ausführst, um dein gesamtes Projekt zu deployen.
Sobald deployed, kannst du mit deinen Entitäten über das entities-Modul des SDK interagieren. Der Entitätsname in deinem Schema muss exakt mit dem übereinstimmen, wie du im SDK darauf zugreifst, einschließlich Groß- und Kleinschreibung. Wenn dein Schema z. B. "name": "Task" hat, musst du es als base44.entities.Task.list() ansprechen.
Deployed Entity-Schemas können im Dashboard im Bereich Data eingesehen werden.
Siehe auch
- User-Schema: Spezielle eingebaute Entität für Benutzer-Authentifizierung
- Sicherheit: Konfiguriere Row-Level-Security-Regeln für Entitäten
- Projektstruktur: Wie Entity-Schemas in dein Projekt passen
Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.