نموذج البيانات ومخطط ER
يسدّ نمط نموذج البيانات الفجوة بين عقد الواجهة وقاعدة البيانات. يشتقّ من مخططات OpenAPI نموذجاً علائقياً كاملاً، ويقارنه بقاعدة قائمة، ويزامن الاثنين عند التغيير — كل ذلك في مخطط ER مرئي.
هناك نقطتا بداية، كلتاهما مدعومتان.
- بلا جداول بعد. اشتقّ مباشرة من الواجهات الحالية كل جدول وحقل ومفتاح أجنبي وجدول علاقة وSQL لإنشائها.
- قاعدة موجودة. اقرأ الجداول الفعلية والمفاتيح الأجنبية المطبَّقة، وقارن مع النموذج الذي توحي به الواجهة، وانظر أين يتطابق ويختلف.
المطابقة رباعية الطبقات
تقدّم المطابقة (datamodel.reconcile) رؤية موثوقة عبر أربع طبقات.
| الطبقة | المحتوى |
|---|---|
| المُلاحَظ | جداول يتيمة في القاعدة المتصلة، مفاتيح أجنبية موجودة/مطبَّقة في القاعدة فقط |
| المُنمذَج | حالة كل جدول (missing، drift، matched، extra)، أزواج الحقول المنمذجة/الفعلية، فروق على مستوى الحقل، عمليات الواجهة المتأثرة، العلاقات المنمذجة |
| المُقتَرَح | خطة ترحيل إضافية مرتّبة مع تبعيات blockedBy وSQL لكل خطوة |
| المُستنبَط | جداول علاقات N:M مستنبطة تلقائياً، أسئلة توضيحية، ضمانات |
يُسنِد النموذج كل جدول وحقل وعلاقة وعبارة إلى هذه النتيجة ولا يخترع DDL.
حالات الجدول
- Missing — توحي به الواجهة لكنه غائب في القاعدة.
- Drift — في الطرفين لكن الحقول/القيود مختلفة.
- Matched — موجود ومحاذٍ.
- Extra — في القاعدة لكن الواجهة الحالية لا توحي به.
جداول العلاقات والفهارس المستنبطة
لا تحتاج إلى نمذجة جداول الربط يدوياً. عندما توحي المخططات بـN:M — مثلاً مع موردي user وproduct — لا تتوقّف طبقة المُستنبَط عند الجدولين الأساسيين: تشتقّ جدول العلاقة الرابط بينهما (والفهارس المرتبطة). تُدرَج الفهارس الثانوية في SQL المولَّد.
عندما لا يمكن استنباط منطق العمل بوضوح، تطرح النتيجة سؤالاً بدل التخمين، وتحدّد الضمانات ما يجب أن يراجعه إنسان.
مخطط ER المرئي
تعرض واجهة ER النموذج كرسم بياني لإظهار العلاقات والمفاتيح الأجنبية بنظرة واحدة، لا بقراءة قائمة جداول.
- الجداول عُقَد ذات تخطيط تلقائي يقلّل التقاطعات.
- علاقات المفاتيح الأجنبية مرسومة كوصلات.
- حالة العقدة تعكس حالة المطابقة (مفقود، منحرف، مطابق، إضافي).
- تُظهر لوحة جانبية خطوات ترحيل ملموسة —
create_table،alter_table، فحوصات — وSQL الجدول المختار.
هكذا تحصل على رؤية كلية للمخطط ومسار دقيق مرتّب لمحاذاة القاعدة.
تحليل الأثر ثنائي الاتجاه
يعرف النموذج عمليات الواجهة والجداول معاً، لذا تنتشر التغييرات بشكل مرئي.
- إذا تغيّرت الواجهة، تحدّد المطابقة الجداول المتأثرة — القائمة المنحرفة والجديدة المطلوبة — وتقدّم SQL.
- إذا تغيّرت القاعدة، تُعرَض العمليات التي تمسّ الجداول المتأثرة كعناصر أثر.
في الحالتين يمكنك التحديث وإعادة المطابقة بعد التعديل حتى يتطابق النموذج والقاعدة.
سكربت النشر
لقاعدة جديدة، يولّد datamodel.deploymentScript سكربت SQL غير قابل للتكرار ومتقدّماً فقط.
CREATE TABLE IF NOT EXISTSبترتيب المفاتيح الأجنبية.- فهارس ثانوية.
- بيانات مثال حتمية اختيارية (0–50 صفاً، الافتراضي 0)؛ جداول العلاقات بلا تعبئة.
لقاعدة قائمة استخدم المطابقة، التي تقدّم ALTER إضافية عبر الخطة المرتّبة.
اتصالات القاعدة
تُدار الاتصالات عبر ملفات تعريف محفوظة (المعرّف، الاسم، اللهجة، المضيف، المنفذ، المستخدم، القاعدة)، ولا تُرجَع كلمات المرور. اللهجات المدعومة: MySQL وSQL Server وOracle.
database.runSelectينفّذSELECTقراءة فقط عبر ملف تعريف محفوظ ويُرجع صفوفاً محدودة؛ يحجب الكتابة وDDL.database.prefillConnectionيفتح حوار اتصال جديداً معبّأ بالتفاصيل المزوَّدة، كي تُدخل كلمة المرور بنفسك بدل تمريرها في الطلب.