تطوير قواعد بيانات PostgreSQL

تصميم المخططات وعمليات الترحيل واستعلامات التقارير: بيانات منتجاتنا محفوظة في PostgreSQL.

نصمم مخططات PostgreSQL وعمليات الترحيل واستعلامات التقارير. بيانات Hippotenus وLogaritim وAtölye Tasarım محفوظة في PostgreSQL.

آخر تحديث:

ما بنيناه بهذه التقنية

جميعها منشورة؛ صفحات المتاجر والتفاصيل في صفحة المنتجات.

Hippotenus

منصة للمؤسسات التعليمية

قاعدة بيانات واجهة NestJS البرمجية؛ مخطط Prisma مقسّم إلى ملفات حسب المجال، وأرقام الاختبارات التجريبية وبطاقات النتائج تأتي من استعلامات SQL مباشرة.

اعرض المنتج

Logaritim

بنك أسئلة وإنشاء اختبارات

بنك الأسئلة والمنهج في PostgreSQL؛ والبحث عن الأسئلة والمواضيع المتشابهة يجري في قاعدة البيانات نفسها عبر pgvector.

اعرض المنتج

Atölye Tasarım

موقع ومصمم ورش ثلاثي الأبعاد

تُحفظ تصاميم الورش ثلاثية الأبعاد في PostgreSQL عبر Drizzle، ويُخزَّن التصميم نفسه في عمود JSONB محدد النوع.

اعرض المنتج

متى يكون PostgreSQL الخيار الصحيح

PostgreSQL قاعدة بيانات علائقية مفتوحة المصدر. تحفظ البيانات في جداول، وتحمي قاعدة البيانات نفسها الروابط بينها (صف الطالب، أسئلة الاختبار، فاتورة الدفعة). وهو خيارنا الافتراضي لبرمجيات الأعمال التي ترتبط فيها السجلات ببعضها وتحتاج البيانات نفسها إلى إنتاج تقارير مختلفة لأشخاص مختلفين.

حيث يناسب PostgreSQL

  • سجلاتك مترابطة: المستخدمون والصفوف والاختبارات والطلبات والمدفوعات
  • يجب أن تنتج البيانات نفسها تقارير مختلفة للمسؤولين أو المعلمين أو العملاء
  • تحفظ سجلات لا يجوز أن تُكتب نصف كتابة، مثل المال أو المخزون أو الدرجات
  • تريد البحث بالتشابه لميزة ذكاء اصطناعي دون نقله إلى خدمة منفصلة

حيث نقترح أداة أخرى

  • حاجة التطبيق الأساسية مزامنة فورية بين الشاشات ولا توجد استعلامات معقدة على الخادم: هنا تبدأ بشكل أسرع مع خدمة مثل Firebase
  • كل ما تحتاجه ذاكرة تخزين مؤقت أو طابور مهام: Redis أنسب لذلك، وفي Hippotenus تعمل الذاكرة المؤقتة والطوابير على Redis بجانب PostgreSQL
  • ما تخزنه في الغالب ملفات أو صور أو فيديو: مكانها تخزين الكائنات، ويُحفظ في PostgreSQL سجلها فقط

قاعدة بيانات علائقية أم قاعدة مستندات

نستخدم الطريقتين في منتجات منشورة. يعمل Hippotenus وLogaritim وAtölye Tasarım على PostgreSQL، بينما يحفظ SoruVerse بياناته في Firestore، وتستخدم الواجهة الخلفية لـ Rigel قاعدة MongoDB. نختار بحسب شكل البيانات والأسئلة التي ستُطرح عليها لاحقاً.

PostgreSQL (علائقية)قاعدة مستندات (Firestore وMongoDB)
نموذج البياناتجداول وروابط بينها؛ القواعد داخل قاعدة البياناتمستندات مكتملة بذاتها؛ القواعد في كود التطبيق
التقاريرربط عدة جداول في استعلام واحد أمر طبيعييتم الربط غالباً في الكود أو بتكرار البيانات
تغيير المخططمنضبط عبر ملفات الترحيلمرن؛ والاتساق مسؤولية التطبيق
الحقول المرنةممكنة عبر عمود JSONBمدعومة أصلاً
مثالناHippotenus وLogaritim وAtölye TasarımSoruVerse (Firestore)، والواجهة الخلفية لـ Rigel (MongoDB)

الحد بينهما ليس قاطعاً دائماً. في Atölye Tasarım يُحفظ تصميم الورشة ثلاثي الأبعاد للمدرسة كمستند واحد في عمود JSONB، بينما الحقول التي نستعلم عنها، مثل التاريخ والمدينة ونطاق السعر، أعمدة عادية. هكذا يجمع السجل الواحد بين مرونة المستند وقابلية الجدول للاستعلام.

المخططات وعمليات الترحيل: تغيير قاعدة البيانات مع الكود

كل تغيير في بنية قاعدة البيانات محفوظ في المستودع كملف ترحيل (migration) ويُدار إصداره مع التطبيق. في Hippotenus قُسّم مخطط Prisma إلى ملفات حسب المجال، مثل الشؤون الأكاديمية والمالية والاستبيانات؛ وتطبّق صورة Docker الخاصة بالواجهة البرمجية عمليات الترحيل المعلقة عند تشغيلها، وإذا فشلت إحداها لا تعمل النسخة الجديدة وتستمر النسخة القديمة في العمل.

  • في Logaritim عمليات الترحيل ملفات SQL مرقمة؛ يعمل كل منها داخل معاملة (transaction)، ومكتوب بحيث لا يضر تشغيله مرتين، ويُطبَّق قبل تشغيل الخادم.
  • في أحد مشاريع العملاء تطبّق خدمة «ترحيل» منفصلة تعمل مرة واحدة عمليات ترحيل Drizzle، ولا يبدأ التطبيق إلا بعد انتهائها بنجاح.
  • في المشروع نفسه يجعل مُشغِّل (trigger) جدول سجل التدقيق قابلاً للإضافة فقط: لا يمكن تعديل السجلات أو حذفها، حتى من التطبيق نفسه.
  • في Hippotenus تعمل عدة مؤسسات على نظام واحد؛ تحمل السجلات معرّف المؤسسة وتُصفّى الاستعلامات بحسبه. ومعظم السجلات المحذوفة لا تُزال فعلاً بل تُعلَّم بتاريخ الحذف.
  • في Hippotenus نتحقق من أن القيود (التفرد والمفاتيح الأجنبية) تعمل فعلاً عبر اختبارات تكامل تعمل على قاعدة PostgreSQL حقيقية.

استعلامات التقارير والبحث المتجهي والأدوات التي نستخدمها

نكتب معظم التطبيق باستخدام ORM، لكن شاشات التقارير تحصل على SQL مباشر. تحسب شاشات تحليل الاختبارات التجريبية وبطاقات النتائج في Hippotenus عدد الإجابات الصحيحة والخاطئة والفارغة لكل طالب باستعلام واحد يربط جداول الاختبارات والأسئلة والصفوف والفروع. والجدول الذي يحفظ أحداث الاستخدام الخام مقسّم حسب التاريخ (partitioning). وفي Logaritim تُحفظ التمثيلات المتجهية للأسئلة في قاعدة البيانات نفسها عبر pgvector، وهناك يجري البحث بالتشابه المستخدم لاختيار الأمثلة أثناء توليد الأسئلة ولمطابقة المواضيع بين الاختبارات المختلفة.

Prisma

استعلامات آمنة الأنواع وإدارة عمليات الترحيل. نستخدمه في واجهة NestJS البرمجية لـ Hippotenus.

Drizzle

أداة ORM خفيفة بلغة TypeScript قريبة من SQL. نستخدمها في Atölye Tasarım وفي أحد مشاريع العملاء.

pgvector

بحث بالتشابه المتجهي داخل قاعدة البيانات مع فهرس HNSW. نستخدمه في Logaritim.

psycopg وasyncpg

ربط خدمات Python بـ PostgreSQL. نستخدمهما في الواجهة الخلفية FastAPI لـ Logaritim.

PostGIS

لبيانات المواقع وحدود المناطق. نستخدمه في أحد مشاريع العملاء مع ‎.NET وEntity Framework Core.

Redis

للتخزين المؤقت وطوابير المهام بجانب PostgreSQL. نستخدمه في Hippotenus مع BullMQ.

كيف يسير مشروع PostgreSQL

  1. 01

    مكالمة تعريفية مجانية

    30 دقيقة

    نتحدث عن المعلومات التي تحفظها، ومن يحتاج أي تقرير، وما لديك من بيانات حالياً (جداول بيانات أو نظام قديم).

  2. 02

    نطاق مكتوب وعرض سعر

    نكتب الجداول والعلاقات بينها والتقارير المطلوبة ومعايير القبول، مع عرض السعر.

  3. 03

    إصدارات أسبوعية

    كل أسبوع تجرّب النسخة العاملة على بيانات تجريبية، وتصل تغييرات المخطط كملفات ترحيل مع إصدار ذلك الأسبوع.

  4. 04

    الاختبار والإطلاق

    يختبر مهندس ضمان جودة أول النسخة قبل الإطلاق، وتُراجَع أرقام التقارير على بيانات تجريبية.

  5. 05

    الثلاثون يوماً بعد الإطلاق

    30 يوماً

    نصلح مجاناً الأخطاء التي تظهر في هذه الفترة، وبعدها يمكنك المتابعة بصيانة شهرية.

ننشر المدد ونطاقات الميزانية في صفحات الخدمات والأسعار، وكل ما في هذه الصفحة يتبع الأرقام نفسها.

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

هل أدفع رسوم ترخيص مقابل PostgreSQL؟

لا. PostgreSQL مفتوح المصدر ومجاني؛ والتكلفة هي الخادم أو الخدمة المُدارة التي تشغّله. يستخدم Atölye Tasarım خدمة PostgreSQL مُدارة بلا خوادم، بينما تعمل قاعدة بيانات Hippotenus داخل Docker على خادمنا الخاص.

هل يمكنكم نقل بياناتي من جداول البيانات أو من نظام قديم؟

نعم. نحدد نطاق البيانات المنقولة في مرحلة الاستكشاف ونكتبه في العرض. في Hippotenus حمّلنا بيانات YÖK Atlas وبنك الأسئلة بسكربتات استيراد كتبناها لهذا الغرض.

هل تُؤخذ نسخ احتياطية من بياناتي؟

نضع خطة النسخ الاحتياطي ضمن المشروع. في Hippotenus تُنسخ قواعد البيانات احتياطياً كل ليلة، وتُشفَّر النسخ وتُنقل إلى تخزين منفصل في تركيا، وقد جُرّبت الاستعادة. قاعدة البيانات غير مكشوفة على الإنترنت، ولا يصل إليها إلا التطبيق.

ماذا يبقى لديّ في نهاية المشروع؟

ترخيص استخدام دائم للبرنامج ووثائق الاستخدام. وإذا أردت نقل الكود المصدري إليك مع ملفات الترحيل فذلك ممكن مقابل رسوم إضافية تُذكر بشكل منفصل في العرض.

خدمات ذات صلة

تطوير تطبيقات الويبتطوير برمجيات مخصصةلوحات البيانات والتقاريرتكامل ERP وCRM
تواصل معنا

لنتحدث عن طريقة حفظ بياناتك

في مكالمة تعريفية مجانية مدتها 30 دقيقة نحدد معاً شكل بياناتك والتقارير التي تحتاجها ومدى ملاءمة PostgreSQL لك.