Trasformazione dello schema da JSON a MySQL — Numio
Genera istruzioni MySQL CREATE TABLE dal campione JSON. La radice diventa una tabella denominata generic; ogni oggetto o array nidificato diventa una tabella figlia con una chiave esterna per la chiave primaria del genitore.
Schizzo di un layout di tabella normalizzato per un payload API prima di scrivere una migrazione reale.
JSON
MySQL Schema
Quando usarlo
- Schizzo di un layout di tabella normalizzato per un payload API prima di scrivere una migrazione reale.
- Vedere quali oggetti e array nidificati in un documento avrebbero bisogno delle proprie tabelle durante lo spostamento dei dati da un archivio documenti a MySQL.
Come si usa
- Incolla un oggetto JSON o una serie di record di esempio uniti in un'unica tabella nell'editor di sinistra oppure utilizza il pulsante carica file per aprire un file UTF-8.
- Leggi le tabelle generate: la radice è generica, i figli sono generic_<key>, collegati da chiavi esterne generic_id.
- Copia SQL, quindi rinomina le tabelle e modifica i tipi di colonna (ad esempio DECIMAL per i prezzi o VARCHAR per la lunghezza) prima di eseguirlo.
Oggetto campione JSON
{
"id": 1024,
"total": 19.5,
"coupon": null,
"created_at": "2026-01-05T10:00:00Z",
"scores": [4, 4.5],
"items": [{ "sku": "A1", "qty": 2 }]
}MySQL CREATE TABLE istruzioni
CREATE TABLE generic ( id INT, total DOUBLE, coupon TEXT, created_at TIMESTAMP, PRIMARY KEY (id) ); CREATE TABLE generic_scores ( generic_id INT, id INT, value DOUBLE, PRIMARY KEY (id), FOREIGN KEY (generic_id) REFERENCES generic(id) ); CREATE TABLE generic_items ( generic_id INT, id INT, sku TEXT, qty INT, PRIMARY KEY (id), FOREIGN KEY (generic_id) REFERENCES generic(id) );
Dettagli e limiti
Gli interi diventano INT (BIGINT fuori dall'intervallo di 32 bit), gli altri numeri DOUBLE, le stringhe TEXT e i booleani BOOLEAN. Non vengono generate lunghezze VARCHAR, NOT NULL, AUTO_INCREMENT o indici.
La chiave primaria è una chiave denominata id o contenente _id; se non esiste, viene aggiunta una colonna id. Le stringhe più lunghe di 18 caratteri analizzate come date diventano TIMESTAMP.
i valori null diventano colonne TEXT. Gli array di scalari ottengono una tabella figlia con una colonna di valori digitata da tutti gli elementi (i punteggi sopra sono DOUBLE).
Funziona nel tuo browser; l'output non è convalidato rispetto a un server MySQL.
FAQ
Perché un valore decimale viene digitato DOUBLE e non DECIMAL?
L'esempio non può mostrare la precisione necessaria, quindi i numeri non interi diventano DOUBLE. Cambia manualmente le colonne del denaro in DECIMAL(p,s).
Posso scegliere il nome della tabella?
No. La tabella radice è sempre generica e le tabelle figlie sono generic_<key>. Rinominarli nel SQL copiato.
Genera istruzioni INSERT?
No, solo CREATE TABLE. Per trasformare le righe JSON in istruzioni INSERT utilizzare lo strumento da JSON a SQL.