Alat Inferensi Skema
Setiap integrasi baru dimulai dengan cara yang sama: sebuah API mengembalikan blob JSON dan Anda memerlukan model untuk menampungnya. Mengetik 20 kolom secara manual itu melelahkan dan rawan kesalahan. Alat ini mengurai objek JSON contoh, memilih tipe kolom untuk setiap kunci, dan menghasilkan skema siap tempel dalam format yang Anda inginkan: SQL CREATE TABLE, skema Mongoose, atau definisi model Sequelize.
Cara menyimpulkan skema dari JSON
-
1
Tempel objek contoh
Masukkan satu objek JSON, atau larik objek (objek pertama dalam larik yang dibaca). Gunakan record lengkap dengan semua kolom terisi agar setiap kolom mendapat tipe.
-
2
Pilih format keluaran
SQL CREATE TABLE (gaya Postgres / MySQL / SQLite), Mongoose untuk aplikasi Node.js dengan MongoDB, atau Sequelize untuk aplikasi relasional Node.js.
-
3
Beri nama tabel atau model
Menetapkan nama tabel di keluaran SQL, atau nama skema atau model di keluaran Mongoose dan Sequelize.
-
4
Salin skema yang dihasilkan
Tempel langsung ke sebuah migrasi atau berkas model sebagai titik awal.
Bagaimana tipe disimpulkan
Inferensi adalah tebakan terbaik. Alat ini membaca nilai-nilai dari satu objek contoh dan memilih tipe kolom untuk setiap kunci berdasarkan nilai yang dilihatnya. Alat ini tidak membandingkan record dan tidak menebak kolom mana yang opsional, jadi berikan objek yang lengkap dan representatif.
Pemetaan tipe
| Nilai JSON | Tipe SQL | Tipe Mongoose | Tipe Sequelize |
|---|---|---|---|
42 (bilangan bulat) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (desimal) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"halo" (string pendek) |
VARCHAR(255) | String | DataTypes.STRING |
| string lebih dari 255 karakter | 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] (larik) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (objek) |
JSON | Object | DataTypes.JSON |
Apa yang ditambahkan keluaran SQL
SQL CREATE TABLE selalu diawali dengan kunci utama yang bertambah otomatis:
id INTEGER PRIMARY KEY AUTOINCREMENT,
Keluaran Mongoose dan Sequelize tidak menambahkan kolom id, karena kedua pustaka itu membuatnya untuk Anda.
Bawaan dan batasan yang perlu diingat
- Hanya satu objek yang dibaca. Jika Anda menempel larik, hanya elemen pertama yang diperiksa, sehingga kolom-kolomnyalah yang mendefinisikan seluruh skema.
- Kunci yang hilang berarti kolom yang tidak ada. Kolom yang tidak ada di objek contoh tidak akan muncul di keluaran.
- Objek dan larik bersarang menjadi satu kolom JSON. Alat ini tidak menguraikannya menjadi subtabel, subskema, atau foreign key.
- Tidak ada constraint yang dihasilkan. Kolom dikeluarkan tanpa
NOT NULL, keunikan, atau indeks, sehingga semuanya mengizinkan null sampai Anda memperketatnya.
Tips untuk hasil yang lebih rapi
- Gunakan record yang terisi penuh. Kolom yang bernilai
nulldi contoh Anda akan bertipe teks/string, yang jarang menjadi maksud Anda. - Ganti nama kata terpesan setelah dihasilkan. Kolom seperti
type,order, atauuserperlu diberi tanda kutip di SQL. - Perlakukan keluaran sebagai kerangka. Sesuaikan panjang VARCHAR dan presisi DECIMAL, tambahkan indeks, tandai kolom sebagai
NOT NULL, dan pilih kunci yang sesungguhnya sebelum dirilis.
Pertanyaan yang Sering Diajukan
Objek atau larik bersarang dipetakan ke satu kolom JSON (JSON di SQL dan Sequelize, kolom bertipe Object di Mongoose). Alat ini tidak menguraikan struktur bersarang menjadi subtabel atau subskema, jadi Anda sendiri yang meratakan atau menormalkannya bila perlu.
Tidak. Jika Anda menempel larik objek, hanya objek pertama yang diperiksa dan kunci-kuncinyalah yang mendefinisikan skema. Pastikan record pertama itu memiliki semua kolom yang Anda perlukan, dengan nilai nyata di masing-masing.
Tidak. Setiap kolom dikeluarkan hanya dengan tipe, sehingga keluarannya tidak memiliki foreign key, constraint keunikan, indeks, atau klausa NOT NULL. Tambahkan semua itu secara manual, karena mereka mengkodekan maksud yang tidak dapat dipulihkan alat ini dari satu sampel.
Pilih SQL CREATE TABLE untuk migrasi basis data relasional, Mongoose Schema untuk aplikasi Node.js di MongoDB, atau Sequelize Model untuk aplikasi Node.js di basis data relasional melalui ORM Sequelize.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Generator EditorConfig
Buat file .editorconfig dari aturan indentasi, akhir baris, dan charset Anda, lalu tambahkan bagian yang tepat untuk tiap bahasa di repositori Anda: Python, Go, YAML, Makefile, dan lainnya.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Konverter Ukuran File
Konversi antara byte, KB, MB, GB, TB, dan satuan biner IEC (KiB, MiB, GiB, TiB) dengan kombinasi desimal dan biner apa pun yang Anda inginkan.
Alat ini tersedia dalam bahasa lain
- Herramienta de Inferencia de Esquema [ES]
- Outil d'inférence de schéma [FR]
- Narzędzie do wnioskowania schematu [PL]
- Schema-Inferenz-Tool [DE]
- Schema-inferentie-tool [NL]
- Ferramenta de Inferência de Esquema [PT]
- 스키마 추론 도구 [KO]
- เครื่องมืออนุมาน Schema [TH]
- スキーマ推論ツール [JA]
- Schemainferensverktyg [SV]
- Công cụ suy luận lược đồ [VI]
- أداة استنتاج المخطط [AR]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]