Konwerter JSON na schemat MySQL — Numio
Generuje wyciągi MySQL CREATE TABLE z przykładu JSON. Korzeń staje się tabelą o nazwie rodzajowej; każdy zagnieżdżony obiekt lub tablica staje się tabelą podrzędną z kluczem obcym do klucza podstawowego elementu nadrzędnego.
Szkicowanie znormalizowanego układu tabeli dla ładunku API przed napisaniem prawdziwej migracji.
JSON
MySQL Schema
Kiedy go używać
- Szkicowanie znormalizowanego układu tabeli dla ładunku API przed napisaniem prawdziwej migracji.
- Sprawdzanie, które zagnieżdżone obiekty i tablice w dokumencie będą wymagały własnych tabel podczas przenoszenia danych z magazynu dokumentów do MySQL.
Jak używać
- Wklej obiekt JSON lub tablicę przykładowych rekordów połączonych w jedną tabelę do lewego edytora lub użyj przycisku ładowania pliku, aby otworzyć plik UTF-8.
- Przeczytaj wygenerowane tabele: root jest ogólny, dzieci to rodzajowy_<key>, połączony kluczami obcymi generic_id.
- Skopiuj plik SQL, a następnie zmień nazwy tabel i dostosuj typy kolumn (na przykład DECIMAL dla cen lub długości VARCHAR) przed jego uruchomieniem.
Przykładowy obiekt JSON
{
"id": 1024,
"total": 19.5,
"coupon": null,
"created_at": "2026-01-05T10:00:00Z",
"scores": [4, 4.5],
"items": [{ "sku": "A1", "qty": 2 }]
}Wyciągi MySQL CREATE TABLE
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) );
Szczegóły i ograniczenia
Liczby całkowite stają się INT (BIGINT poza zakresem 32-bitowym), inne liczby DOUBLE, łańcuchy znaków TEXT i wartości logiczne BOOLEAN. Nie są generowane długości VARCHAR, NOT NULL, AUTO_INCREMENT ani indeksy.
Klucz podstawowy to klucz o nazwie id lub zawierający _id; jeśli żadna nie istnieje, dodawana jest kolumna id. Ciągi dłuższe niż 18 znaków analizowane jako daty stają się TIMESTAMP.
wartości null stają się kolumnami TEXT. Tablice skalarów otrzymują tabelę podrzędną z kolumną wartości wpisaną ze wszystkich elementów (powyższe wyniki to DOUBLE).
Działa w Twojej przeglądarce; dane wyjściowe nie są sprawdzane względem serwera MySQL.
FAQ
Dlaczego wpisano wartość dziesiętną DOUBLE, a nie DECIMAL?
Próbka nie może wykazać wymaganej precyzji, dlatego liczby niecałkowite przyjmują postać DOUBLE. Ręcznie zmień kolumny pieniężne na DECIMAL(p,s).
Czy mogę wybrać nazwę stołu?
Nie. Tabela główna jest zawsze ogólna, a tabele podrzędne to rodzajowe_<key>. Zmień ich nazwę w skopiowanym pliku SQL.
Czy generuje wyciągi INSERT?
Nie, tylko CREATE TABLE. Aby zamienić wiersze JSON w instrukcje INSERT, użyj narzędzia JSON do SQL.