أداة استنتاج المخطط
كل تكامل جديد يبدأ بالطريقة نفسها: تُعيد واجهة برمجية كتلة JSON، وتحتاج إلى نموذج لتخزينها. كتابة 20 حقلًا يدويًا مملة وعرضة للأخطاء. تحلل هذه الأداة كائن JSON نموذجيًا، وتختار نوع عمود لكل مفتاح، وتُنتج مخططًا جاهزًا للصق بالصيغة التي تريدها: SQL CREATE TABLE أو مخطط Mongoose أو تعريف نموذج Sequelize.
كيف تستنتج مخططًا من JSON
-
1
الصق كائنًا نموذجيًا
أدخل كائن JSON واحدًا، أو مصفوفة من الكائنات (يُقرأ الكائن الأول في المصفوفة). استخدم سجلًا كاملًا بجميع الحقول المعبأة كي يحصل كل عمود على نوع.
-
2
اختر صيغة الإخراج
SQL CREATE TABLE (بأسلوب Postgres / MySQL / SQLite)، أو Mongoose لتطبيقات Node.js التي تستخدم MongoDB، أو Sequelize لتطبيقات Node.js العلائقية.
-
3
سمِّ الجدول أو النموذج
يحدد اسم الجدول في مخرجات SQL، أو اسم المخطط أو النموذج في مخرجات Mongoose و Sequelize.
-
4
انسخ المخطط المُولَّد
الصقه مباشرة في ملف ترحيل (migration) أو ملف نموذج كنقطة انطلاق.
كيف تُستنتج الأنواع
الاستنتاج هو أفضل تخمين ممكن. تقرأ الأداة قيم كائن نموذجي واحد وتختار نوع عمود لكل مفتاح بناءً على القيمة التي تراها. لا تقارن بين السجلات ولا تخمّن أي الحقول اختيارية، لذا امنحها كائنًا كاملًا وممثِّلًا.
تطابق الأنواع
| قيمة JSON | نوع SQL | نوع Mongoose | نوع Sequelize |
|---|---|---|---|
42 (عدد صحيح) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (عدد عشري) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"مرحبا" (سلسلة قصيرة) |
VARCHAR(255) | String | DataTypes.STRING |
| سلسلة أطول من 255 حرفًا | 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] (مصفوفة) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (كائن) |
JSON | Object | DataTypes.JSON |
ماذا يضيف إخراج SQL
يبدأ SQL CREATE TABLE دائمًا بمفتاح رئيسي ذاتي التزايد:
id INTEGER PRIMARY KEY AUTOINCREMENT,
لا يضيف إخراج Mongoose و Sequelize حقل id، لأن المكتبتين تنشئان واحدًا نيابةً عنك.
قيم افتراضية وحدود يجب تذكرها
- يُقرأ كائن واحد. إذا لصقت مصفوفة، يُفحص العنصر الأول فقط، فحقوله هي التي تحدد المخطط كله.
- المفتاح المفقود عمود غير موجود. الحقول التي لا توجد في الكائن النموذجي لا تظهر في الإخراج إطلاقًا.
- تصبح الكائنات والمصفوفات المتداخلة عمود JSON واحدًا. لا تفكّها الأداة إلى جداول فرعية أو مخططات فرعية أو مفاتيح خارجية.
- لا تُولَّد أي قيود. تُخرَج الأعمدة دون
NOT NULLأو تفرّد أو فهارس، لذا تسمح جميعها بالقيم الفارغة حتى تُحكِمها أنت.
نصائح لنتيجة أنظف
- استخدم سجلًا معبأً بالكامل. الحقل الذي قيمته
nullفي نموذجك يُعطى نوع نص/سلسلة، وهو نادرًا ما يكون ما تريده. - أعد تسمية الكلمات المحجوزة بعد التوليد. حقول مثل
typeأوorderأوuserستحتاج إلى علامات اقتباس في SQL. - تعامل مع الإخراج كسقالة. اضبط أطوال VARCHAR ودقة DECIMAL، وأضف فهارس، وميّز الأعمدة بـ
NOT NULL، واختر مفاتيح حقيقية قبل الإطلاق.
الأسئلة الشائعة
يُطابَق الكائن أو المصفوفة المتداخلة مع عمود JSON واحد (JSON في SQL و Sequelize، وحقل من نوع Object في Mongoose). لا تفكّ الأداة البُنى المتداخلة إلى جداول فرعية أو مخططات فرعية، لذا تقوم أنت بتسطيحها أو تسويتها عند الحاجة.
لا. إذا لصقت مصفوفة من الكائنات، يُفحص الكائن الأول فقط ومفاتيحه هي التي تحدد المخطط. تأكد من أن هذا السجل الأول يضم كل الحقول التي تهمك، بقيمة حقيقية في كل منها.
لا. يُخرَج كل عمود بنوع فقط، لذا لا يحتوي الإخراج على مفاتيح خارجية أو قيود تفرّد أو فهارس أو جُمَل NOT NULL. أضِفها يدويًا، لأنها تشفّر نيّة لا تستطيع الأداة استعادتها من عينة.
اختر SQL CREATE TABLE لترحيل قاعدة بيانات علائقية، أو Mongoose Schema لتطبيق Node.js على MongoDB، أو Sequelize Model لتطبيق Node.js على قاعدة بيانات علائقية عبر ORM الخاص بـ Sequelize.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
مرجع اختصارات لوحة المفاتيح
ابحث في الاختصارات الافتراضية الموثقة لـ VS Code وChrome وBash مع GNU Readline على macOS وWindows وLinux.
مدقق البريد الإلكتروني
تحقق من عنوان بريد إلكتروني: فحص صياغة RFC 5322، واستعلام حي عن سجل MX، بالإضافة إلى تفاصيل الجزء المحلي والنطاق والطول. لا يتم إرسال أي بريد.
مولد EditorConfig
أنشئ ملف .editorconfig من قواعد المسافة البادئة ونهاية السطر ومجموعة الأحرف، ثم أضف قسمًا صحيحًا لكل لغة في مستودعك: Python وGo وYAML وMakefile وغيرها.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
الأداة متاحة بلغات أخرى
- Herramienta de Inferencia de Esquema [ES]
- Outil d'inférence de schéma [FR]
- Alat Inferensi Skema [ID]
- Schemainferensverktyg [SV]
- スキーマ推論ツール [JA]
- 스키마 추론 도구 [KO]
- Narzędzie do wnioskowania schematu [PL]
- 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]