وسم: قواعد البيانات

الفهرس المركب في SQL: ترتيب الأعمدة يحسم الأداء

الفهرس المركب في SQL: ترتيب الأعمدة يحسم الأداء

·برمجة

قاعدة ترتيب أعمدة الفهرس المركب: مساواة ثم مدى ثم ترتيب، مع قراءة خطط التنفيذ في PostgreSQL وMySQL وأمثلة تكشف سبب تجاهل المخطط لفهرسك.

تخزين التاريخ والوقت في قاعدة البيانات: UTC أولاً

تخزين التاريخ والوقت في قاعدة البيانات: UTC أولاً

·برمجة

دليل عملي لتخزين التاريخ والوقت في قاعدة البيانات: متى تعتمد UTC للحظات الماضية، ومتى تحفظ المواعيد المستقبلية بوقت محلي مع معرّف IANA.

تخزين المبالغ المالية في قاعدة البيانات: DECIMAL لا float

تخزين المبالغ المالية في قاعدة البيانات: DECIMAL لا float

·برمجة

دليل عملي لتخزين المبالغ المالية في قاعدة البيانات: لماذا يفشل float، ومتى تختار DECIMAL أو أصغر وحدة، مع فخ العملات الخليجية وتقريب ضريبة زاتكا.

مشكلة N+1 في الاستعلامات: كيف تكتشفها وتحلها في كل إطار عمل

مشكلة N+1 في الاستعلامات: كيف تكتشفها وتحلها في كل إطار عمل

·برمجة

شرح عملي لمشكلة N+1 في الاستعلامات: كيف تكتشفها بأدوات مثل Django Debug Toolbar، وتحلها في Laravel وRails وJPA وGraphQL بأقل تعقيد ممكن.

Cursor Pagination أم Offset: أيهما تختار لتصميم API؟

Cursor Pagination أم Offset: أيهما تختار لتصميم API؟

·برمجة

فرق جوهري بين cursor pagination وoffset pagination في API: أداء الاستعلامات وتكرار السجلات، مع أمثلة من Stripe وGitHub لاختيار الأنسب لمشروعك.

مستويات العزل في قواعد البيانات: متى ترفعها ومتى تقفل

مستويات العزل في قواعد البيانات: متى ترفعها ومتى تقفل

·برمجة

الافتراضي يختلف بين المحرّكات، وRepeatable Read يسمح بانحراف الكتابة، ورفع مستوى العزل ثمنه إعادة المعاملة كاملة، وقد يكفيك القفل الصريح.

مفتاح idempotency: منع تكرار الطلب في واجهات الدفع

مفتاح idempotency: منع تكرار الطلب في واجهات الدفع

·برمجة

كيف تمنع تكرار تنفيذ الطلب باستخدام مفتاح idempotency: ترتيب الإدخال قبل التنفيذ، وبصمة جسم الطلب، وفروق المزوّدين بين Stripe وTap وMoyasar.

UUID أم bigint: كيف تختار المفتاح الأساسي لجدولك

UUID أم bigint: كيف تختار المفتاح الأساسي لجدولك

·برمجة

مقارنة عملية بين UUID وbigint لاختيار المفتاح الأساسي في قاعدة البيانات، مع ما غيّره UUIDv7 وأخطاء شائعة في PostgreSQL وMySQL وقواعد قرار جاهزة.