Narzędzie do wnioskowania schematu

Każda nowa integracja zaczyna się tak samo: API zwraca obiekt JSON, a Ty potrzebujesz modelu, w którym go przechowasz. Wpisywanie 20 pól ręcznie jest żmudne i podatne na błędy. To narzędzie analizuje przykładowy obiekt JSON, dobiera typ kolumny dla każdego klucza i generuje gotowy do wklejenia schemat w wybranym formacie: SQL CREATE TABLE, schemat Mongoose lub definicja modelu Sequelize.

Jak wywnioskować schemat z JSON-a

  1. 1

    Wklej przykładowy obiekt

    Wprowadź jeden obiekt JSON lub tablicę obiektów (odczytywany jest pierwszy obiekt z tablicy). Użyj kompletnego rekordu ze wszystkimi wypełnionymi polami, aby każda kolumna otrzymała typ.

  2. 2

    Wybierz format wyjściowy

    SQL CREATE TABLE (w stylu Postgres / MySQL / SQLite), Mongoose dla aplikacji Node.js z MongoDB lub Sequelize dla relacyjnych aplikacji Node.js.

  3. 3

    Nazwij tabelę lub model

    Ustawia nazwę tabeli w wyniku SQL albo nazwę schematu lub modelu w wyniku Mongoose i Sequelize.

  4. 4

    Skopiuj wygenerowany schemat

    Wklej go bezpośrednio do migracji lub pliku modelu jako punkt wyjścia.

Jak wnioskowane są typy

Wnioskowanie to najlepsze przybliżenie. Narzędzie czyta wartości jednego przykładowego obiektu i dobiera typ kolumny dla każdego klucza na podstawie widzianej wartości. Nie porównuje rekordów ani nie odgaduje, które pola są opcjonalne, dlatego podaj mu kompletny, reprezentatywny obiekt.

Mapowanie typów

Wartość JSON Typ SQL Typ Mongoose Typ Sequelize
42 (liczba całkowita) INTEGER Number DataTypes.INTEGER
3.14 (liczba dziesiętna) DECIMAL(10,2) Number DataTypes.FLOAT
"cześć" (krótki tekst) VARCHAR(255) String DataTypes.STRING
tekst dłuższy niż 255 znaków 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] (tablica) JSON Object DataTypes.JSON
{ "nested": ... } (obiekt) JSON Object DataTypes.JSON

Co dodaje wynik SQL

SQL CREATE TABLE zawsze zaczyna się od automatycznie zwiększanego klucza głównego:

id INTEGER PRIMARY KEY AUTOINCREMENT,

Wyniki Mongoose i Sequelize nie dodają pola id, ponieważ obie biblioteki tworzą je za Ciebie.

Wartości domyślne i ograniczenia, o których warto pamiętać

  • Odczytywany jest jeden obiekt. Jeśli wkleisz tablicę, sprawdzany jest tylko pierwszy element, więc to jego pola definiują cały schemat.
  • Brakujący klucz to brakująca kolumna. Pola, których nie ma w przykładowym obiekcie, po prostu nie pojawiają się w wyniku.
  • Zagnieżdżone obiekty i tablice stają się jedną kolumną JSON. Narzędzie nie rozwija ich w podtabele, podschematy ani klucze obce.
  • Nie są generowane żadne ograniczenia. Kolumny są tworzone bez NOT NULL, unikalności czy indeksów, więc wszystkie dopuszczają wartości null, dopóki ich nie doprecyzujesz.

Wskazówki dla czystszego wyniku

  • Użyj w pełni wypełnionego rekordu. Pole, które w Twoim przykładzie ma wartość null, otrzyma typ tekst/string, co rzadko jest tym, czego chcesz.
  • Zmień nazwy słów zarezerwowanych po wygenerowaniu. Pola takie jak type, order czy user będą wymagać cudzysłowów w SQL.
  • Traktuj wynik jak rusztowanie. Dostosuj długości VARCHAR i precyzję DECIMAL, dodaj indeksy, oznacz kolumny jako NOT NULL i wybierz prawdziwe klucze przed wdrożeniem.

Najczęściej zadawane pytania

Zagnieżdżony obiekt lub tablica są mapowane na jedną kolumnę JSON (JSON w SQL i Sequelize, pole typu Object w Mongoose). Narzędzie nie rozwija zagnieżdżonych struktur w podtabele ani podschematy, więc w razie potrzeby sam je spłaszczasz lub normalizujesz.

Nie. Jeśli wkleisz tablicę obiektów, sprawdzany jest tylko pierwszy obiekt i to jego klucze definiują schemat. Upewnij się, że ten pierwszy rekord zawiera wszystkie istotne pola, z prawdziwą wartością w każdym z nich.

Nie. Każda kolumna jest tworzona tylko z typem, więc wynik nie ma kluczy obcych, ograniczeń unikalności, indeksów ani klauzul NOT NULL. Dodaj je ręcznie, ponieważ kodują intencję, której narzędzie nie odtworzy z próbki.

Wybierz SQL CREATE TABLE dla migracji relacyjnej bazy danych, Mongoose Schema dla aplikacji Node.js na MongoDB lub Sequelize Model dla aplikacji Node.js na relacyjnej bazie danych przez ORM Sequelize.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach