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
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
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
Nazwij tabelę lub model
Ustawia nazwę tabeli w wyniku SQL albo nazwę schematu lub modelu w wyniku Mongoose i Sequelize.
-
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,orderczyuserbę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 NULLi 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
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Zbuduj plik .editorconfig z własnych reguł wcięć, końca linii i kodowania, a potem dodaj poprawną sekcję dla każdego języka w repozytorium: Python, Go, YAML, Makefile i więcej.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- Herramienta de Inferencia de Esquema [ES]
- Outil d'inférence de schéma [FR]
- Alat Inferensi Skema [ID]
- Schemainferensverktyg [SV]
- أداة استنتاج المخطط [AR]
- スキーマ推論ツール [JA]
- 스키마 추론 도구 [KO]
- Schema-inferentie-tool [NL]
- Công cụ suy luận lược đồ [VI]
- เครื่องมืออนุมาน Schema [TH]
- Ferramenta de Inferência de Esquema [PT]
- Schema-Inferenz-Tool [DE]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]