Şema Çıkarım Aracı
Her yeni entegrasyon aynı şekilde başlar: bir API bir JSON verisi döndürür ve onu tutacak bir modele ihtiyacınız olur. 20 alanı elle yazmak hem sıkıcı hem de hata yapmaya açıktır. Bu araç örnek bir JSON nesnesini ayrıştırır, her anahtar için bir sütun türü seçer ve istediğiniz biçimde yapıştırmaya hazır bir şema üretir: SQL CREATE TABLE, Mongoose şeması veya Sequelize model tanımı.
JSON'dan bir şema nasıl çıkarılır
-
1
Örnek bir nesne yapıştırın
Tek bir JSON nesnesi ya da bir nesne dizisi girin (dizideki ilk nesne okunur). Her sütunun bir tür alması için tüm alanları dolu, eksiksiz bir kayıt kullanın.
-
2
Çıktı biçimini seçin
SQL CREATE TABLE (Postgres / MySQL / SQLite tarzı), MongoDB kullanan Node.js uygulamaları için Mongoose veya ilişkisel Node.js uygulamaları için Sequelize.
-
3
Tabloya veya modele ad verin
SQL çıktısındaki tablo adını ya da Mongoose ve Sequelize çıktısındaki şema veya model adını belirler.
-
4
Üretilen şemayı kopyalayın
Başlangıç noktası olarak doğrudan bir migration'a veya bir model dosyasına yapıştırın.
Türler nasıl çıkarılır
Çıkarım bir en iyi tahmindir. Araç tek bir örnek nesnenin değerlerini okur ve gördüğü değere göre her anahtar için bir sütun türü seçer. Kayıtları karşılaştırmaz ve hangi alanların isteğe bağlı olduğunu tahmin etmez, bu yüzden ona eksiksiz ve temsili bir nesne verin.
Tür eşlemesi
| JSON değeri | SQL türü | Mongoose türü | Sequelize türü |
|---|---|---|---|
42 (tam sayı) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (ondalık) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"merhaba" (kısa metin) |
VARCHAR(255) | String | DataTypes.STRING |
| 255 karakterden uzun metin | 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] (dizi) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (nesne) |
JSON | Object | DataTypes.JSON |
SQL çıktısının eklediği şey
SQL CREATE TABLE her zaman otomatik artan bir birincil anahtarla başlar:
id INTEGER PRIMARY KEY AUTOINCREMENT,
Mongoose ve Sequelize çıktısı bir id alanı eklemez, çünkü her iki kütüphane de sizin için bir tane oluşturur.
Akılda tutulacak varsayılanlar ve sınırlar
- Tek bir nesne okunur. Bir dizi yapıştırırsanız yalnızca ilk öğe incelenir, dolayısıyla tüm şemayı onun alanları tanımlar.
- Eksik bir anahtar, olmayan bir sütundur. Örnek nesnede bulunmayan alanlar çıktıda hiç görünmez.
- İç içe geçmiş nesneler ve diziler tek bir JSON sütununa dönüşür. Araç bunları alt tablolara, alt şemalara veya yabancı anahtarlara açmaz.
- Hiçbir kısıtlama üretilmez. Sütunlar
NOT NULL, benzersizlik veya indeks olmadan üretilir, dolayısıyla siz sıkılaştırana kadar hepsi boş değere izin verir.
Daha temiz bir sonuç için ipuçları
- Tamamen doldurulmuş bir kayıt kullanın. Örneğinizde
nullolan bir alan metin/string olarak türlenir, bu da nadiren istediğiniz şeydir. - Üretimden sonra ayrılmış sözcükleri yeniden adlandırın.
type,orderveyausergibi alanların SQL’de tırnak içine alınması gerekir. - Çıktıyı bir iskele olarak görün. VARCHAR uzunluklarını ve DECIMAL hassasiyetini ayarlayın, indeks ekleyin, sütunları
NOT NULLolarak işaretleyin ve yayına almadan önce gerçek anahtarlar seçin.
Sık Sorulan Sorular
İç içe geçmiş bir nesne veya dizi tek bir JSON sütununa eşlenir (SQL ve Sequelize’de JSON, Mongoose’da bir Object alanı). Araç iç içe geçmiş yapıları alt tablolara veya alt şemalara açmaz, bu yüzden gerekirse onları kendiniz düzleştirir veya normalize edersiniz.
Hayır. Bir nesne dizisi yapıştırırsanız yalnızca ilk nesne incelenir ve şemayı onun anahtarları tanımlar. Bu ilk kaydın önemsediğiniz tüm alanları, her birinde gerçek bir değerle içerdiğinden emin olun.
Hayır. Her sütun yalnızca bir türle üretilir, dolayısıyla çıktıda yabancı anahtar, benzersizlik kısıtlaması, indeks veya NOT NULL ifadesi yoktur. Bunları elle ekleyin, çünkü aracın bir örnekten geri kazanamayacağı bir niyeti kodlarlar.
İlişkisel bir veritabanı migration’ı için SQL CREATE TABLE, MongoDB üzerindeki bir Node.js uygulaması için Mongoose Schema, Sequelize ORM aracılığıyla ilişkisel bir veritabanı üzerindeki bir Node.js uygulaması için Sequelize Model seçin.
İlgili Araçlar
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Webpack Yapılandırma Oluşturucu
Saf JavaScript, React veya Vue için webpack 5 uyumlu bir webpack.config.js oluşturun: TypeScript, Babel, CSS veya Sass, görseller, HtmlWebpackPlugin, geliştirme sunucusu ve npm install satırı.
Tamamlayıcı Renk Bulucusu
Her girdi için tamamlayıcı renk belirleyin. HSL açısından tersi renk, bölünmüş tamamlayıcı çifti ve erişilebilir kombinasyonlar için öneriler geri verir.
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Araç diğer dillerde mevcuttur
- スキーマ推論ツール [JA]
- Narzędzie do wnioskowania schematu [PL]
- Công cụ suy luận lược đồ [VI]
- Schema-Inferenz-Tool [DE]
- Schemainferensverktyg [SV]
- Ferramenta de Inferência de Esquema [PT]
- 스키마 추론 도구 [KO]
- Herramienta de Inferencia de Esquema [ES]
- เครื่องมืออนุมาน Schema [TH]
- Outil d'inférence de schéma [FR]
- Alat Inferensi Skema [ID]
- Schema-inferentie-tool [NL]
- أداة استنتاج المخطط [AR]
- 模式推断工具 [ZH]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]