الانتقال إلى المحتوى الرئيسي

مقدمة

erd-editor محرر لمخططات الكيانات والعلاقات. يتوفر على هيئة تطبيق ويب، وتطبيق Google Drive، وإضافة VS Code، ومكوّن IntelliJ الإضافي، ومكوّن Obsidian الإضافي، وعنصر مخصص <erd-editor> يمكنك تضمينه في صفحتك الخاصة، ومعه <erd-viewer> لعرض مخطط للقراءة فقط. ويمكن للموقع الذي لا يحمّل سكربتًا خاصًا به أن يُطر مخططًا للقراءة فقط من erd-editor.io/embed بدلًا من ذلك. وهو محرر واحد وتنسيق مستند واحد في جميعها.

مخطط متجر: وضع المؤشر فوق علاقة، وإضافة عمود، والتركيز على orders في وضع التدفق

من أين تحصل عليه​

المنصةالتثبيتما تحصل عليه
تطبيق الويبerd-editor.ioتطبيق PWA قابل للتثبيت، يعمل دون اتصال، ويتيح التعاون في الوقت الفعلي
Google DriveGoogle Workspace Marketplaceيضيف ERD Editor إلى القائمتين Open with وNew في Drive، ويحفظ التغييرات في الملف نفسه
VS CodeMarketplaceيفتح ملفات .erd.json في محرر مخصص
IntelliJJetBrains Marketplaceالمحرر نفسه، لبيئات التطوير المبنية على IntelliJ
ObsidianCommunity pluginsيفتح ملفات .erd و.erd.json في علامة تبويب داخل الخزنة، على سطح المكتب فقط
صفحتك الخاصةnpm install @dineug/erd-editorالعنصر المخصص <erd-editor> المستقل عن أطر العمل، و<erd-viewer> الذي يعرض مخططًا للقراءة فقط، راجع التثبيت وErdViewerElement
أي موقعerd-editor.io/embedمخطط للقراءة فقط في iframe، من عنوان URL لمستند، دون أي شيفرة، راجع التضمين
وكلاء البرمجة@dineug/erd-editor-mcpخادم MCP يمكّن Claude Code أو Codex أو أي عميل آخر من تحرير مخطط تحريرًا مباشرًا في VS Code أو بيئة تطوير JetBrains أو Obsidian، أو في الملف نفسه

لتجربته في بيئة تطوير، أنشئ ملفًا فارغًا بالامتداد .erd.json وافتحه. في Obsidian، شغّل ERD Editor: Create new diagram من لوحة الأوامر، أو اختر New ERD من قائمة السياق لأحد المجلدات في مستكشف الملفات. ينشئ كلٌّ منهما ملف .erd فارغًا ويفتحه. في Google Drive، اختر New → More → ERD Editor، ثم سجّل الدخول باستخدام Google. لا يصل ERD Editor إلا إلى الملفات التي تنشئها أو تفتحها به. في تطبيق الويب وGoogle Drive وVS Code وبيئة تطوير JetBrains وObsidian، يُفتح المخطط الجديد الفارغ على شاشة الترحيب، وهي قائمة بالخطوات الأولى: New Table وNew Memo وImport وCommand Palette وShortcuts. يترك التمرير والتكبير والتصغير والتبديل بين علامات التبويب وتبديل عرض الأسماء الملفَ الفارغ للمخطط الجديد كما هو، لأن كل الأقفال مفعّلة في المخطط الجديد. راجع القفل. يفتح VS Code ملف ERD كنص JSON في Source Control وLocal History وCompare with Saved، وفي مراجعة التعديلات في دردشة VS Code ولدى وكلاء البرمجة مثل GitHub Copilot وClaude Code، وفي عروض المراجعات في إضافات مثل GitLens وGitHub Pull Requests وGit Graph، فتظهر فروق التغيير سطرًا بسطر. ويعرض Reopen Editor With... مراجعة Git كمخطط للقراءة فقط.

بعد تحديث مكوّن Obsidian الإضافي، أعد تشغيل Obsidian: فحتى ذلك الحين، تحتفظ النافذة بالمحرر الذي حمّله الإصدار السابق. حدّث ERD Editor و@dineug/erd-editor-mcp في كل مكان تشارك فيه المخططات. فالإصدار الذي سبق علامة تبويب القاموس، أو خادم MCP أقدم يحرّر ملفًا على القرص، يحفظ المخطط دون أسمائه المنطقية وروابط المجالات وقواميسه. والإصدار السابق لظهور مجموعات الجداول لا يعرض كذلك أيقونات المفتاح الأساسي في ملف حفظه الإصدار الحالي، وحفظ الملف هناك يُسقط منه مجموعات الجداول وسكربتات مخطط SQL. تُعاد كتابة الملف الذي حفظه إصدار أقدم بالصيغة الحالية عند أول تغيير يحتفظ به الملف، راجع القفل. ويُسقط ذلك الحفظ أيضًا النصوص الفارغة والقوائم ومجموعات الكيانات التي كتبها الإصدار الأقدم، لذا يغيّر من الملف أكثر مما يغيّره التعديل. وحتى ذلك الحين، يشير محرر JSON الذي يتحقق من صحة ملف من إصدار سبق مجموعات الجداول وفق $schema الخاص به إلى أنه غير صالح.

ما الذي يقدمه​

  • ارسم الجداول والأعمدة والملاحظات على لوحة رسم غير محدودة، واربطها بأربعة أنواع من العلاقات: Zero One وZero N وOne Only وOne N. راجع بدء التحرير. تُعرَّف الفهارس في لوحة خصائص الجدول. الفهرس الفريد الذي يشمل عمودين أو أكثر مفتاح بديل، وعند تفعيل خيار العرض Alternate Key، يعلّم المخطط أعمدة الفهرس بالعلامات AK1.1 وAK1.2 وهكذا. راجع الفهارس والمفاتيح البديلة.
  • أنهِ العلاقة على أعمدة موجودة بالفعل في الجدول: أثناء رسم علاقة بالماوس أو بالقلم، يقرن Map to existing columns، بجوار الجدول الذي تنتهي عنده، مفتاحَ الجدول الأصل بأعمدة ذلك الجدول، ويضيف Create new columns أعمدة جديدة. ويغيّر Map Columns في قائمة السياق للعلاقة أعمدتها لاحقًا. راجع تعيين الأعمدة. ويمكن أن تحمل العلاقة أيضًا إجراءات ON DELETE وON UPDATE. راجع ON DELETE وON UPDATE.
  • حرّر بسرعة: يضيف Alt + N جدولًا؛ ويضيف Alt + Enter عمودًا؛ ويبدّل Alt + K المفتاح الأساسي في العمود الذي عليه التركيز، أو في كل الأعمدة المحددة إذا كان ذلك العمود أحدها؛ ويحذف Delete أو Backspace التحديد. يمثل كلٌّ منها خطوة تراجع واحدة. راجع الاختصارات. ويضيف شريط أدوات لوحة الرسم أسفل لوحة الرسم جدولًا أو ملاحظة بنقرة واحدة أيضًا.
  • لوّن جدولًا أو ملاحظة أو مجموعة جداول من منتقي ألوان يضم ألوانًا معدّة مسبقًا والألوان التي يستخدمها المخطط بالفعل، وأزل اللون باستخدام No color أو Remove color. راجع تلوين الجداول والملاحظات.
  • اجمع الجداول المترابطة في مجموعات جداول: مربع خلفها يمكنك تسميته وتلوينه. ارسم مجموعة باستخدام Alt + G أو باستخدام New Table Group من قائمة السياق للوحة الرسم أو شريط أدوات لوحة الرسم أو البحث السريع، أو أنشئ مجموعة من الجداول المحددة باستخدام T ثم G أو Group selected tables في قائمة السياق الخاصة بها. ينضم الجدول إلى المجموعة حين تُفلته داخلها ويغادرها حين تُفلته خارجها، وسحب المجموعة من شريط عنوانها ينقل جداولها معها. ويحمل DBML المجموعات في كلا الاتجاهين، على هيئة كتل TableGroup.
  • امنح الجداول والأعمدة أسماءً منطقية، وهي الأسماء التي يقرؤها الناس، مثل Customer Name للاسم CUST_NM، بجانب الأسماء المادية التي يكتبها مخطط SQL ومنشئ التعليمات البرمجية. ويحدد عرض الأسماء (Physical Names أو Logical Names أو Both Names) أيًّا منها ترسمه لوحة الرسم، وتتبعه معظم الأماكن الأخرى التي تذكر اسم جدول أو عمود، مثل صفوف الجداول والأعمدة في المستكشف، والتدفق، والصورة المُصدَّرة. اختره من الزر Name View في شريط أدوات لوحة الرسم، أو من قائمة السياق للوحة الرسم، أو من شريط أدوات التصور المرئي في Flow، أو من البحث السريع.
  • احتفظ بمعيار التسمية الخاص بالمخطط في علامة تبويب القاموس. يُبحث في أوراقها Domains وWords وTerms وتُفرز وتُحرَّر كما في جدول البيانات، ولكل منها سجل تراجع خاص بها. وتستورد الأوراق ملفات CSV وتصدّرها: يقرأ الاستيراد بنية المحرر الخاصة أو بنية معيار البيانات العامة الكوري، بترميز UTF-8 أو EUC-KR، ويكتب التصدير بنية المحرر الخاصة. وتُكمل خلية الاسم المنطقي أسماء المصطلحات. ويمنح الاسم المنطقي جدوله أو عموده اسمًا ماديًا من المصطلح المطابق، أو من اختصارات الكلمات التي يُقسَّم إليها، إلى أن تكتب الاسم بنفسك. وبعد تغيّر كلمة أو مصطلح، يعيد Derive Physical Names Again اشتقاق الأسماء، بما فيها الأسماء التي كتبتها بنفسك. ويأخذ العمود المرتبط بمجال، يدويًا أو عبر مصطلحه، نوع بيانات المجال ويتبع تغييراته، ويعرض خيار العرض Domain مجال كل عمود. وتسرد الورقة Checks الكلمات المحظورة وغير المسجلة والمرادفة، والأسماء المكررة، والمجالات غير المعروفة، والأسماء المادية التي تختلف عن اسم مصطلحها، وأنواع الأعمدة التي تختلف عن نوع مجالها. وتلوّن لوحة الرسم الأسماء المنطقية والمادية التي ترصدها فحوصات الكلمات والمصطلحات.
  • استورد مخططًا موجودًا من json أو Schema SQL أو GraphQL أو DBML أو AML. راجع استيراد الملفات وتصديرها. تصل جداول ملف مخطط SQL أو GraphQL أو DBML أو AML مرتبةً على امتداد علاقاتها، أو في صفوف إن لم تكن فيه علاقات. ويضيف Import and Add ملفًا أسفل المخطط بدلًا من استبداله.
  • صدّر المخطط بصيغة json؛ أو بصيغة مخطط SQL من علامة تبويب مخطط SQL، محفوظًا في ملف .sql أو منسوخًا؛ أو من مربع الحوار Export image كصورة PNG أو SVG، أو كصورة PNG في الحافظة.
  • اعرض مخططًا للقراءة فقط في موقع آخر: أطِّر erd-editor.io/embed بعنوان URL لملف، ومنه ملف على GitHub، أو حمّل العنصر <erd-viewer> في صفحتك. يحرّك القارئ العرض ويكبّر ويبحث ويُبرز العلاقات، ولا شيء يعدّل المخطط.
  • اكتب مخطط SQL بصياغة ثمانية أنظمة لقواعد البيانات: Databricks وMSSQL وMariaDB وMySQL وOracle وPostgreSQL وSnowflake وSQLite. راجع وظائف الجداول. تختار لوحة الخيارات في علامة تبويب مخطط SQL العبارات والترويسة ومجموعات الجداول التي تُكتب، ويمكنها كتابة الأسماء المنطقية في التعليقات الفارغة، وتحتفظ بنص SQL الخاص بك، محفوظًا في المخطط، ليُكتب قبل الجداول وبعدها.
  • أنشئ التعليمات البرمجية لأيٍّ من 22 هدفًا: اللغات C# وGo وJava وKotlin وPHP وRust وScala وSwift وTypeScript؛ وأطر ORM، وهي Doctrine وDrizzle وJPA وSeaORM وSequelize وSQLAlchemy وTypeORM؛ وكذلك AML وDBML وGraphQL وJSON Schema وMermaid وZod. تختار لوحة الخيارات في علامة تبويب منشئ التعليمات البرمجية اللغةَ وقاعدة البيانات وأنماط التسمية، وتُحفظ التعليمات البرمجية في ملف بامتداد اللغة أو تُنسخ. راجع منشئ التعليمات البرمجية.
  • اقرأ المخطط في التصور المرئي، على هيئة Graph موجّه بالقوى أو Flow من بطاقات الجداول المرتبة على امتداد علاقاتها، حيث يؤدي وضع المؤشر فوق جدول إلى إبراز كل ما يتصل به. اضغط Alt + F في علامة تبويب ERD للتركيز على الجداول المحددة والجداول المرتبطة بها. وفي Flow، يتيح Previous table وNext table الرجوع خطوة والتقدم خطوة عبر ما قُصر عليه التدفق، كما تفعل مفاتيح التراجع والإعادة هناك.
  • اعمل على لوحة رسم بلا حواف: حرّك العرض إلى أي مكان يمتد إليه المخطط، وكبّر العرض وصغّره من 10% إلى 150% باستخدام Ctrl + Wheel (⌘ + Wheel على Mac) أو لوحة المفاتيح أو إيماءة القرص، وأخلِ الشاشة من كل شيء عدا المخطط باستخدام وضع الزن. يحرّك السحب بزر الماوس الأوسط العرض من أي مكان على لوحة الرسم، حتى من فوق جدول. راجع التنقل في لوحة الرسم.
  • رتّب مخططًا كاملًا في خطوة واحدة باستخدام التخطيط التلقائي: محاكاة قوى، أو تدفق من اليسار إلى اليمين، أو شجرة في أي من الاتجاهين، مع إبقاء كل مجموعة جداول مجتمعة.
  • شغّل أي أمر من أي مكان باستخدام البحث السريع، أو ابدأ البحث بالرمز # أو @ أو : للانتقال إلى جدول أو عمود أو تعليق أو ملاحظة؛ ويطابق # و@ الأسماء المنطقية أيضًا. تنقّل خطوة بخطوة في سجل التعديلات باستخدام التراجع والإعادة، وأعد تشغيل سجل هذه الجلسة على لوحة الرسم باستخدام السفر عبر الزمن، أو قارن المخطط بملف .json آخر في عارض الفروق. وتسرد شجرته، بجوار النسختين، الجداول والأعمدة والفهارس والمفاتيح الخارجية والملاحظات ومجموعات الجداول التي أُضيفت أو عُدّلت أو حُذفت أو أُعيدت تسميتها.
  • تصفّح المخطط في المستكشف، وهو شجرة مثبّتة على يسار لوحة الرسم: الجداول، كلٌّ منها بأعمدته وفهارسه ومفاتيحه الخارجية، ثم مجموعات الجداول والملاحظات. انقر على صف للانتقال إلى ما يمثله على لوحة الرسم؛ ويُبرز صف المفتاح الخارجي علاقته أيضًا. يفتحه الزر Explorer في شريط الأدوات، بجوار Search، ويغلقه.
  • ابحث عن نص باستخدام البحث والاستبدال أعلى المستكشف. فهو يبحث في أسماء الجداول والأعمدة والفهارس ومجموعات الجداول، وفي الأسماء المنطقية للجداول والأعمدة، وفي التعليقات والملاحظات بعد تفعيلها، ويعرض التطابقات في شجرة المستكشف. استبدل تطابقًا واحدًا أو جميع التطابقات؛ ويمنح Preserve Case كل بديل حالة أحرف النص الذي يستبدله. يفتح Ctrl + F (⌘ + F على Mac) المستكشف ومؤشر الكتابة في حقل البحث، والضغط عليه مرة أخرى يغلق المستكشف.
  • استخدم المحرر بإحدى 25 لغة، تختارها من الزر Display Language في شريط الأدوات أو من البحث السريع. يتبع System لغة المتصفح أو التطبيق المضيف، وتعرض العربية والعبرية والفارسية المحرر من اليمين إلى اليسار بينما يبقى المخطط من اليسار إلى اليمين. لا يتغير إلا نص المحرر نفسه: تبقى الأسماء ونص SQL والتعليمات البرمجية المُنشأة كما كُتبت. ويختار منشئ النسق في شريط الأدوات المظهر (System أو Light أو Dark) ودرجة رمادي ولون تمييز. راجع اللغة والنسق.
  • حافظ على نظافة الفروق: موضع التمرير ومستوى التكبير، وعلامة التبويب المفتوحة، ولغة منشئ التعليمات البرمجية وأنماط التسمية فيه، ونوع علامات الاقتباس، وعرض الأسماء مقفلة افتراضيًا، لذا يحتفظ الملف بالقيم التي كانت لها عند قفلها، ولا يغيّره التمرير أو التكبير والتصغير أو التبديل بين علامات التبويب أو تبديل عرض الأسماء أبدًا. يُكتب الملف بترتيب ثابت، بسطر واحد لكل صف من صفوف القواميس، ولا يتضمن العروض المقيسة ولا ترتيب التراص ولا نقاط ارتكاز خطوط الربط ولا العناصر المُزالة ولا النص الفارغ لأي عنصر ولا القوائم ومجموعات الكيانات الخاصة بنوع لا يحتوي المخطط على أي عنصر منه، لذا فإن فتح مخطط وإغلاقه دون تعديل يترك الملف كما كان.
  • دع وكيل برمجة مثل Claude Code أو Codex يحرّر المخطط عبر خادم MCP: تحريرًا مباشرًا في VS Code أو Obsidian أو بيئة تطوير JetBrains، حيث يظهر كل تغيير على لوحة الرسم لحظة حدوثه، أو في الملف نفسه. ويمكنه أيضًا ضبط الأسماء المنطقية ومجالات الأعمدة، وتحرير القواميس، وإعادة اشتقاق الأسماء المادية، وسرد ما ترصده الورقة Checks.
  • حرّر مع الآخرين في الوقت الفعلي في تطبيق الويب (تجريبي). الجلسات من نظير إلى نظير ومشفّرة من طرف إلى طرف، لذا لا يحتفظ أي خادم بمخططك، ويرى النظراء مؤشرات بعضهم بعضًا وتركيزهم وتحديداتهم. وفي صفحتك الخاصة، تمنحك الدالة getSharedStore() دفق الإجراءات نفسه عبر وسيلة النقل التي تختارها، ويُبقي @dineug/erd-editor-yjs المخطط متزامنًا عبر مستند Yjs وأي مزوّد ينقله، بما في ذلك التعديلات دون اتصال والحضور.

ابدأ من دليل التحرير.

سبب إنشاء هذا المشروع​

لم تقدّم أدوات النمذجة الموجودة مستوى تجربة المستخدم الذي كنت أطمح إليه.
لذلك أنشأتُ هذا المشروع لتقديم تجربة مستخدم مُثلى.
الأولوية القصوى للمشروع هي تجربة التحرير لدى المستخدم.
سيقدّم لك تجربة تحرير مذهلة.