Ş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
ASCII Tablosu Referansı
NUL, LF ve DEL dahil her kod için ondalık, onaltılık, sekizlik ve ikili değerlerle HTML sayısal karakter başvurusu gösterimini sunan tam ASCII tablosu.
HTML Karakter Referansı
HTML varlıklarının aranabilir listesi; adlandırılmış ve sayısal kodlarıyla birlikte özel karakter ve semboller için tek tıkla kopyalama.
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.
Klavye kısayolları başvurusu
macOS, Windows ve Linux’ta VS Code, Chrome ve GNU Readline kullanan Bash için belgelenmiş varsayılan kısayolları arayın.
E-posta Doğrulayıcı
Bir e-posta adresini doğrulayın: RFC 5322 sözdizimi kontrolü, canlı MX kaydı sorgulama, ayrıca yerel kısım, alan adı ve uzunluk bilgileri. Hiçbir e-posta gönderilmez.
EditorConfig Oluşturucu
Girinti, satır sonu ve karakter kümesi kurallarınızdan bir .editorconfig oluşturun, ardından deponuzdaki her dil için doğru bölümü ekleyin: Python, Go, YAML, Makefile ve daha fazlası.
Araç diğer dillerde mevcuttur
- Schemainferensverktyg [SV]
- 스키마 추론 도구 [KO]
- Outil d'inférence de schéma [FR]
- เครื่องมืออนุมาน Schema [TH]
- Schema-inferentie-tool [NL]
- Công cụ suy luận lược đồ [VI]
- Schema-Inferenz-Tool [DE]
- Herramienta de Inferencia de Esquema [ES]
- Alat Inferensi Skema [ID]
- أداة استنتاج المخطط [AR]
- スキーマ推論ツール [JA]
- Narzędzie do wnioskowania schematu [PL]
- Ferramenta de Inferência de Esquema [PT]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- 模式推断工具 [ZH]