Schema-Inferenz-Tool

Jede neue Integration beginnt gleich: Eine API liefert einen JSON-Blob und du brauchst ein Modell, um ihn zu speichern. 20 Felder von Hand zu tippen ist mühsam und fehleranfällig. Dieses Tool analysiert ein JSON-Beispielobjekt, wählt für jeden Schlüssel einen Spaltentyp und erzeugt ein einfügefertiges Schema im gewünschten Format: SQL CREATE TABLE, Mongoose-Schema oder Sequelize-Modelldefinition.

So leitest du ein Schema aus JSON ab

  1. 1

    Beispielobjekt einfügen

    Gib ein JSON-Objekt ein, oder ein Array von Objekten (das erste Objekt des Arrays wird gelesen). Verwende einen vollständigen Datensatz mit allen ausgefüllten Feldern, damit jede Spalte einen Typ erhält.

  2. 2

    Ausgabeformat wählen

    SQL CREATE TABLE (Postgres- / MySQL- / SQLite-Stil), Mongoose für Node.js-Apps mit MongoDB oder Sequelize für relationale Node.js-Apps.

  3. 3

    Tabelle oder Modell benennen

    Legt den Tabellennamen in der SQL-Ausgabe fest, bzw. den Schema- oder Modellnamen in der Mongoose- und Sequelize-Ausgabe.

  4. 4

    Erzeugtes Schema kopieren

    Füge es direkt in eine Migration oder eine Modelldatei ein, als Ausgangspunkt.

Wie die Typen abgeleitet werden

Die Inferenz ist eine bestmögliche Schätzung. Das Tool liest die Werte eines Beispielobjekts und wählt für jeden Schlüssel anhand des gesehenen Werts einen Spaltentyp. Es vergleicht keine Datensätze und erkennt nicht, welche Felder optional sind, gib ihm daher ein vollständiges, repräsentatives Objekt.

Typzuordnung

JSON-Wert SQL-Typ Mongoose-Typ Sequelize-Typ
42 (Ganzzahl) INTEGER Number DataTypes.INTEGER
3.14 (Dezimalzahl) DECIMAL(10,2) Number DataTypes.FLOAT
"hallo" (kurze Zeichenkette) VARCHAR(255) String DataTypes.STRING
Zeichenkette länger als 255 Zeichen TEXT String DataTypes.STRING
"2026-04-18T10:00:00Z" TIMESTAMP Date DataTypes.DATE
"2026-04-18" DATE Date DataTypes.DATEONLY
true / false BOOLEAN Boolean DataTypes.BOOLEAN
null TEXT String DataTypes.STRING
[1, 2, 3] (Array) JSON Object DataTypes.JSON
{ "nested": ... } (Objekt) JSON Object DataTypes.JSON

Was die SQL-Ausgabe ergänzt

Das SQL CREATE TABLE beginnt immer mit einem automatisch hochzählenden Primärschlüssel:

id INTEGER PRIMARY KEY AUTOINCREMENT,

Die Mongoose- und Sequelize-Ausgabe fügt kein id-Feld hinzu, weil beide Bibliotheken es für dich anlegen.

Standardwerte und Grenzen im Blick behalten

  • Es wird ein Objekt gelesen. Wenn du ein Array einfügst, wird nur das erste Element geprüft, dessen Felder definieren also das gesamte Schema.
  • Ein fehlender Schlüssel ist eine fehlende Spalte. Felder, die im Beispielobjekt nicht vorhanden sind, erscheinen schlicht nicht in der Ausgabe.
  • Verschachtelte Objekte und Arrays werden zu einer einzigen JSON-Spalte. Das Tool entfaltet sie nicht in Untertabellen, Unterschemata oder Fremdschlüssel.
  • Es werden keine Einschränkungen erzeugt. Spalten werden ohne NOT NULL, Eindeutigkeit oder Index ausgegeben, sie erlauben also alle NULL-Werte, bis du sie enger fasst.

Tipps für ein saubereres Ergebnis

  • Verwende einen vollständig ausgefüllten Datensatz. Ein Feld, das in deinem Beispiel null ist, wird als Text/String typisiert, was selten das ist, was du willst.
  • Benenne reservierte Wörter nach der Erzeugung um. Felder wie type, order oder user müssen in SQL in Anführungszeichen gesetzt werden.
  • Behandle die Ausgabe als Gerüst. Passe VARCHAR-Längen und DECIMAL-Genauigkeit an, füge Indizes hinzu, markiere Spalten als NOT NULL und wähle echte Schlüssel, bevor du produktiv gehst.

Häufig gestellte Fragen

Ein verschachteltes Objekt oder Array wird auf eine einzige JSON-Spalte abgebildet (JSON in SQL und Sequelize, ein Object-Feld in Mongoose). Das Tool entfaltet verschachtelte Strukturen nicht in Untertabellen oder Unterschemata, du flachst oder normalisierst sie also bei Bedarf selbst.

Nein. Wenn du ein Array von Objekten einfügst, wird nur das erste Objekt geprüft und dessen Schlüssel definieren das Schema. Stelle sicher, dass dieser erste Datensatz alle relevanten Felder mit einem echten Wert enthält.

Nein. Jede Spalte wird nur mit einem Typ ausgegeben, die Ausgabe hat also keine Fremdschlüssel, Eindeutigkeitseinschränkungen, Indizes oder NOT-NULL-Klauseln. Ergänze diese von Hand, denn sie kodieren eine Absicht, die das Tool aus einer Stichprobe nicht wiederherstellen kann.

Wähle SQL CREATE TABLE für eine relationale Datenbankmigration, Mongoose Schema für eine Node.js-App auf MongoDB oder Sequelize Model für eine Node.js-App auf einer relationalen Datenbank über das Sequelize-ORM.

Verwandte Tools

Tool in anderen Sprachen verfügbar