Schema-inferentie-tool
Elke nieuwe integratie begint hetzelfde: een API geeft een JSON-blob terug en je hebt een model nodig om die op te slaan. 20 velden met de hand intypen is saai en foutgevoelig. Deze tool analyseert een JSON-voorbeeldobject, kiest een kolomtype voor elke sleutel en genereert een kant-en-klaar schema in het formaat dat je wilt: SQL CREATE TABLE, een Mongoose-schema of een Sequelize-modeldefinitie.
Een schema afleiden uit JSON
-
1
Plak een voorbeeldobject
Voer één JSON-object in, of een array van objecten (het eerste object in de array wordt gelezen). Gebruik een volledig record met alle velden ingevuld, zodat elke kolom een type krijgt.
-
2
Kies het uitvoerformaat
SQL CREATE TABLE (Postgres- / MySQL- / SQLite-stijl), Mongoose voor Node.js-apps met MongoDB, of Sequelize voor relationele Node.js-apps.
-
3
Geef de tabel of het model een naam
Bepaalt de tabelnaam in de SQL-uitvoer, of de schema- of modelnaam in de Mongoose- en Sequelize-uitvoer.
-
4
Kopieer het gegenereerde schema
Plak het direct in een migratie of een modelbestand als startpunt.
Hoe de types worden afgeleid
De inferentie is een beste gok. De tool leest de waarden van één voorbeeldobject en kiest voor elke sleutel een kolomtype op basis van de waarde die hij ziet. Hij vergelijkt geen records en leidt niet af welke velden optioneel zijn, geef hem dus een volledig, representatief object.
Typetoewijzing
| JSON-waarde | SQL-type | Mongoose-type | Sequelize-type |
|---|---|---|---|
42 (geheel getal) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (decimaal) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"hallo" (korte string) |
VARCHAR(255) | String | DataTypes.STRING |
| string langer dan 255 tekens | 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": ... } (object) |
JSON | Object | DataTypes.JSON |
Wat de SQL-uitvoer toevoegt
De SQL CREATE TABLE begint altijd met een automatisch oplopende primaire sleutel:
id INTEGER PRIMARY KEY AUTOINCREMENT,
De Mongoose- en Sequelize-uitvoer voegt geen id-veld toe, omdat beide bibliotheken er zelf een aanmaken.
Standaarden en grenzen om in gedachten te houden
- Er wordt één object gelezen. Als je een array plakt, wordt alleen het eerste element bekeken, dus de velden daarvan bepalen het hele schema.
- Een ontbrekende sleutel is een ontbrekende kolom. Velden die niet in het voorbeeldobject staan, verschijnen simpelweg niet in de uitvoer.
- Geneste objecten en arrays worden één enkele JSON-kolom. De tool vouwt ze niet uit tot subtabellen, subschema’s of foreign keys.
- Er worden geen constraints gegenereerd. Kolommen worden uitgevoerd zonder
NOT NULL, uniciteit of index, dus ze staan allemaal null toe totdat je ze aanscherpt.
Tips voor een schoner resultaat
- Gebruik een volledig ingevuld record. Een veld dat in je voorbeeld
nullis, krijgt het type tekst/string, wat zelden is wat je wilt. - Hernoem gereserveerde woorden na het genereren. Velden als
type,orderofusermoeten in SQL tussen aanhalingstekens. - Behandel de uitvoer als een steiger. Pas VARCHAR-lengtes en DECIMAL-precisie aan, voeg indexen toe, markeer kolommen als
NOT NULLen kies echte sleutels voordat je live gaat.
Veelgestelde vragen
Een genest object of een geneste array wordt toegewezen aan één enkele JSON-kolom (JSON in SQL en Sequelize, een Object-veld in Mongoose). De tool vouwt geneste structuren niet uit tot subtabellen of subschema’s, dus die maak je zelf plat of normaliseer je zelf als dat nodig is.
Nee. Als je een array van objecten plakt, wordt alleen het eerste object bekeken en bepalen de sleutels daarvan het schema. Zorg dat dat eerste record alle velden bevat die er voor jou toe doen, met een echte waarde in elk veld.
Nee. Elke kolom wordt alleen met een type uitgevoerd, dus de uitvoer heeft geen foreign keys, uniciteitsconstraints, indexen of NOT NULL-clausules. Voeg die met de hand toe, want ze coderen een intentie die de tool niet uit een steekproef kan herleiden.
Kies SQL CREATE TABLE voor een migratie van een relationele database, Mongoose Schema voor een Node.js-app op MongoDB, of Sequelize Model voor een Node.js-app op een relationele database via de Sequelize-ORM.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
E-mailvalidator
Valideer een e-mailadres: RFC 5322-syntaxcontrole, live MX-record-zoekopdracht, plus details over lokaal deel, domein en lengte. Er wordt geen e-mail verstuurd.
Tool beschikbaar in andere talen
- Schemainferensverktyg [SV]
- 스키마 추론 도구 [KO]
- Outil d'inférence de schéma [FR]
- เครื่องมืออนุมาน Schema [TH]
- Công cụ suy luận lược đồ [VI]
- Schema-Inferenz-Tool [DE]
- Herramienta de Inferencia de Esquema [ES]
- Alat Inferensi Skema [ID]
- أداة استنتاج المخطط [AR]
- スキーマ推論ツール [JA]
- Narzędzie do wnioskowania schematu [PL]
- Ferramenta de Inferência de Esquema [PT]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]