تخطَّ إلى المحتوى

🐘 شرح PostgreSQL المتقدّم

ما هي مخطّطات PostgreSQL وكيف تنظّم البيانات؟

الدرس 1 من 2· ⏱ 2 دقائق قراءة

مخطّطات PostgreSQL (Schemas) أداة تنظيم قويّة كثيرًا ما يغفلها القادمون من قواعد بيانات أبسط. هذه إحدى الصفحات التأسيسية لمسار PostgreSQL؛ وهي تركّز على ما يميّز PostgreSQL عن معرفتك العامّة بـ SQL.

ما هي المخطّطات؟

المخطّط (Schema) هو مساحة أسماء (Namespace) منطقية داخل قاعدة بيانات واحدة، تحتوي جداول ودوالّ وأنواعًا وكائنات أخرى. أي أنّ قاعدة البيانات الواحدة يمكن أن تضمّ عدّة مخطّطات، كلٌّ منها يجمّع كائناته الخاصّة.

افتراضيًا، تعيش جداولك في مخطّط اسمه public. لكن يمكنك إنشاء مخطّطات أخرى لتنظيم قاعدتك:

CREATE SCHEMA sales;
CREATE TABLE sales.orders (
  id     SERIAL PRIMARY KEY,
  amount NUMERIC NOT NULL
);

لاحظ التسمية المؤهّلة sales.orders: اسم المخطّط ثم اسم الجدول.

مسار البحث (search_path)

حين تكتب SELECT * FROM orders دون تحديد المخطّط، كيف يعرف PostgreSQL أين يبحث؟ عبر search_path — قائمة مرتّبة بالمخطّطات يبحث فيها بالترتيب.

SET search_path TO sales, public;
SELECT * FROM orders;   -- سيجده في sales.orders

ضبط search_path يتيح كتابة استعلامات موجزة مع إبقاء التنظيم المنطقي واضحًا.

حالات الاستخدام

  • التجميع المنطقي: فصل كائنات وحدات مختلفة (sales، billing، analytics) داخل قاعدة واحدة.
  • تجنّب تعارض الأسماء: جدول users في مخطّط وusers آخر في مخطّط مختلف يتعايشان دون تضارب.
  • تعدّد المستأجرين (Multi-Tenant): نمط شائع هو مخطّط لكل مستأجر، فيُعزل بيانات كل عميل ضمن القاعدة نفسها. (سنتناول تصميم SaaS متعدّد المستأجرين بتفصيل لاحقًا.)

مخطّطات مقابل قواعد بيانات منفصلة

لماذا مخطّطات لا قواعد منفصلة؟

  • المخطّطات داخل قاعدة واحدة، فيمكن الاستعلام عبرها والانضمام بينها بسهولة، وتتشارك الاتّصال نفسه.
  • قواعد البيانات المنفصلة معزولة أكثر لكن أثقل: لا انضمامات مباشرة بينها، وإدارة أعقد.

القاعدة العملية: استخدم المخطّطات للتنظيم المنطقي ضمن تطبيق واحد، والقواعد المنفصلة حين تحتاج عزلًا قويًا حقًّا.

الخطوات التالية

بعد المخطّطات، ستتعمّق في ما يميّز PostgreSQL: أنواع البيانات المتقدّمة مثل JSONB والمصفوفات، ثم MVCC وضبط الأداء. تابع مع MVCC في PostgreSQL، وللأساس العامّ في لغة SQL راجع مسار SQL.

شرح ما هي مخطّطات PostgreSQL وكيف تنظّم البيانات؟ — PostgreSQL المتقدّم بالعربي
ما هي مخطّطات PostgreSQL وكيف تنظّم البيانات؟PostgreSQL المتقدّم بالعربي · The Code Fix

هل كان هذا الدرس مفيدًا؟