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. 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. 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. 3

    Beri nama tabel atau model

    Menetapkan nama tabel di keluaran SQL, atau nama skema atau model di keluaran Mongoose dan Sequelize.

  4. 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 null di contoh Anda akan bertipe teks/string, yang jarang menjadi maksud Anda.
  • Ganti nama kata terpesan setelah dihasilkan. Kolom seperti type, order, atau user perlu 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

Alat ini tersedia dalam bahasa lain