0Pricing
SQL Academy · درس

نمذجة مدونة: المستخدمون والمنشورات والتعليقات

ارسم مخطط ER، وحدد الكيانات والعلاقات، وحوّلها إلى مخطط SQL مطبّع.

نمذجة مدونة: المستخدمون والمنشورات والتعليقات درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

المجال

مدونة بسيطة: يكتب المستخدمون المنشورات، ويعلّق مستخدمون آخرون على المنشورات. لنحوّل ذلك إلى مخطط.

الكيانات

ثلاثة أسماء أساسية:

  • مستخدم — المعرّف والبريد الإلكتروني والاسم
  • منشور — المعرّف والمؤلف والعنوان والنص والطابع الزمني للنشر
  • تعليق — المعرّف والمؤلف والمنشور الذي يوجد عليه والنص

العلاقات

التعددية:

  • المستخدم 1 ── ∞ منشور (يكتب المستخدم العديد من المنشورات)
  • المستخدم 1 ── ∞ تعليق
  • المنشور 1 ── ∞ تعليق

جدول المستخدمين

ابدأوا بالمستخدمين — إذ تشير الجداول الأخرى إليه:

CREATE TABLE users (
  id BIGSERIAL PRIMARY KEY,
  email VARCHAR(255) NOT NULL UNIQUE,
  full_name VARCHAR(100) NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

جدول المنشورات

مفتاح خارجي إلى users:

CREATE TABLE posts (
  id BIGSERIAL PRIMARY KEY,
  author_id BIGINT NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
  title VARCHAR(200) NOT NULL,
  body  TEXT NOT NULL,
  published_at TIMESTAMPTZ,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

جدول التعليقات

مفتاحان خارجيان:

CREATE TABLE comments (
  id BIGSERIAL PRIMARY KEY,
  post_id BIGINT NOT NULL REFERENCES posts(id) ON DELETE CASCADE,
  author_id BIGINT NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
  body TEXT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

لماذا ON DELETE CASCADE للتعليقات؟

إذا حُذف منشور، تصبح تعليقاته بلا معنى — لذا دعوا قاعدة البيانات تنظّفها تلقائيًا.

لماذا ON DELETE RESTRICT للمؤلف؟

لا تحذفوا المحتوى بصمت عند اختفاء مستخدم. أجبِروا التطبيق أولًا على الحذف المنطقي للمستخدم أو إعادة إسناد المحتوى.

التوسّع إلى الوسوم (علاقة متعدد إلى متعدد)

أضيفوا الوسوم عبر جدول ربط:

CREATE TABLE tags (
  id BIGSERIAL PRIMARY KEY,
  name TEXT NOT NULL UNIQUE
);

CREATE TABLE post_tags (
  post_id BIGINT REFERENCES posts(id) ON DELETE CASCADE,
  tag_id  BIGINT REFERENCES tags(id)  ON DELETE CASCADE,
  PRIMARY KEY (post_id, tag_id)
);

التعليقات المتداخلة

تعليقات تشير إلى نفسها لتمثيل الردود:

ALTER TABLE comments
  ADD COLUMN parent_id BIGINT REFERENCES comments(id) ON DELETE CASCADE;

الحذف المنطقي مقابل الحذف الفعلي

في المدونة، غالبًا ما يكون الحذف المنطقي للمنشورات أكثر ملاءمة — إذ لا تتعطل الروابط المكسورة في سجل المستخدم. أضيفوا deleted_at TIMESTAMPTZ وطبّقوا التصفية WHERE deleted_at IS NULL في كل استعلام.

مخطط ER بالكلمات

users (1) -< (∞) posts (1) -< (∞) comments

بالإضافة إلى ذلك: users (1) -< (∞) comments وposts (∞) >-< (∞) tags.

مراجعة

يبدأ تصميم المخطط بالكيانات والعلاقات والتعدديات.

  • مفتاح أساسي اصطناعي في كل جدول
  • تُعلن FKs عن العلاقات
  • يعكس Cascade أو Restrict نية العمل
  • العلاقة متعدد إلى متعدد = جدول ربط

تحقق سريع

أين يوجد المفتاح الخارجي في علاقة واحد إلى متعدد بين المنشورات والتعليقات؟

الأسئلة الشائعة

هل درس «نمذجة مدونة: المستخدمون والمنشورات والتعليقات» مجاني؟

نعم — نص درس «نمذجة مدونة: المستخدمون والمنشورات والتعليقات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «نمذجة مدونة: المستخدمون والمنشورات والتعليقات»؟

ارسم مخطط ER، وحدد الكيانات والعلاقات، وحوّلها إلى مخطط SQL مطبّع. تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «نمذجة مدونة: المستخدمون والمنشورات والتعليقات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. نمذجة مدونة: المستخدمون والمنشورات والتعليقات
  2. اختيار المفاتيح والأنواع
  3. الفهارس للاستعلامات الشائعة
  4. تهيئة قاعدة البيانات ببيانات اختبار
← العودة إلى SQL Academy