كيف نختار قاعدة البيانات
اختيار قاعدة البيانات هو أحد أهم القرارات المعمارية. معظم المشاريع يختارون الخطأ. إليك كيف نختار في شفرة — ولماذا الإجابة هي Postgres غالبًا.
عندما يبدأ مشروع جديد، أول سؤال تقني نسمعه غالبًا هو: «ما قاعدة البيانات التي سنستخدمها؟» — وكأن الإجابة ستأتي من تقييم دقيق للمتطلبات. الحقيقة: في ٩ من ١٠ حالات، الإجابة هي Postgres، وليس لأنه الخيار «المُمِل» بل لأنه الخيار الصحيح.
لماذا Postgres غالبًا
Postgres ليس فقط قاعدة بيانات علائقية جيدة. هو يدعم JSON كمواطن من الدرجة الأولى، فهارس متقدمة، بحث دلالي عبر pgvector، بحث نصي كامل، نسخ مكررة، و ACID صارم. معظم المشاريع التي تختار MongoDB «لأنها مرنة» تكتشف بعد عام أنها تحتاج ضمانات العلاقات، ثم تعيد كتابة كل شيء.
عندما لا تعرف ما تحتاج، استخدم Postgres. عندما تعرف، استخدم Postgres.
متى لا تستخدم Postgres
هناك حالات حقيقية لا يكون Postgres فيها الأفضل. نظام تتبّع زمني عالي التكرار (مليارات السجلات في اليوم)؟ استخدم TimescaleDB أو ClickHouse. محرك بحث يحتاج relevance ranking متقدم؟ Elasticsearch أو Meilisearch. مخزن key/value مع متطلبات زمن استجابة أقل من ميلي ثانية؟ Redis. لكن هذه استثناءات — إذا لم تكن متأكدًا أنك في استثناء، فأنت لست فيه.
مصيدة «لكل خدمة قاعدة بياناتها»
في عالم الميكروسيرفيسز، هناك مبدأ شائع: «كل خدمة يجب أن تملك قاعدة بياناتها الخاصة». بعض الفرق يُترجم هذا إلى: «كل خدمة يجب أن تستخدم قاعدة بيانات مختلفة». هذه كارثة. تُضاعف المهارات التي يحتاجها الفريق، تُضاعف أدوات المراقبة، وتُصعّب النسخ الاحتياطي. Postgres واحد مع schemas مُقسّمة يعمل جيدًا لمعظم الحالات.
JSON في Postgres
إذا كنت تريد «مرونة MongoDB» لكنك لا تريد مغادرة Postgres، استخدم jsonb. يمكنك تخزين كائنات JSON كاملة في عمود، فهرستها، البحث فيها، والاستعلام عنها. تحصل على المرونة بدون فقدان ACID أو العلاقات. معظم الحالات التي تبرّر NoSQL لا تبررها فعلًا — تبررها jsonb.
الاختبار الحقيقي
السؤال الذي نسأله قبل اختيار قاعدة البيانات ليس «ما الأسرع؟» أو «ما الأكثر شعبية؟». السؤال هو: إذا واجهنا مشكلة في الإنتاج في الساعة ٢ صباحًا، من في فريقنا يستطيع تشخيصها؟ إذا كانت الإجابة «لا أحد»، فالقاعدة خاطئة مهما كانت ممتازة تقنيًا. التقنية التي لا تستطيع صيانتها ليست أصلًا — هي دَين.
خلاصة
اختيار قاعدة البيانات هو قرار طويل الأجل بتكلفة تحويل عالية. لا تختر لأن أحدهم كتب منشور مدونة يمدحها. لا تختر لأنها «حديثة». اختر بناءً على ما يعرفه فريقك، ما يحتاجه منتجك، وما يستطيع خدمتك لخمس سنوات قادمة. في ٩ من ١٠ حالات، هذه الإجابة هي Postgres. وفي الحالة العاشرة، اعلم لماذا قبل أن تقرر.

