DATABASE · DESIGN · 2026
تصميم قواعد البيانات من الصفر
إزاي تفكر في الجداول، العلاقات، والـ schema قبل ما تكتب سطر كود واحد.
0%
Section 00
يعني إيه Database Design أصلاً؟
البداية من الصفر
إزاي بنفكر في التصميم؟
من الـ requirements للـ schema النهائي
REQUIREMENTS
فهم البيزنس
ENTITIES
اللي هتخزنه
RELATIONSHIPS
إزاي بيرتبطوا
NORMALIZE
تنظيف التصميم
SCHEMA
الجداول النهائية
١. ابدأ بالبيزنس
لو مش فاهم المشكلة، التصميم هيطلع عبط. اسأل: مين هيستخدم النظام؟ بيعمل إيه؟
٢. الورق قبل الكود
ارسم الـ ER diagram على ورقة. تعديل ورقة أرخص بكتير من تعديل migration.
٣. فكر في الـ queries
التصميم الكويس هو اللي بيخلي الـ queries المهمة سهلة وسريعة، مش العكس.
تصميم قاعدة البيانات (Database Design) هو فن تحديد إيه البيانات اللي هتتخزن، إزاي بتترتب، وإزاي بتربط ببعض قبل ما تكتب سطر كود واحد. ده زي رسم خرايط معماري قبل ما تبني عمارة.
⚡ النقطة المهمة
أغلب مشاكل التطبيقات (بطء، باجات، صعوبة في إضافة features) سببها تصميم قاعدة بيانات سيء. الـ schema سيء = ألف مشكلة جاي ورا. الـ schema كويس = حياة سهلة لسنين.
إيه اللي بنحاول نحققه؟
✓ التصميم الكويس
- ← مفيش تكرار في البيانات
- ← سهل تضيف feature جديد
- ← الـ queries سريعة وبسيطة
- ← مفيش حالات تناقض (inconsistency)
✗ التصميم السيء
- ← نفس البيانات في 5 أماكن مختلفة
- ← أي تعديل بسيط بياخد ساعات
- ← queries معقدة وبطيئة
- ← مفيش حد فاهم الـ schema حتى صاحبه
📖 مصطلحات هنشوفها كتير:
- schema: هيكل قاعدة البيانات: الجداول، الأعمدة، والعلاقات
- entity: كيان: حاجة من العالم الحقيقي هنخزنها (user, product, order)
- attribute: صفة: خاصية للكيان (الـ user عنده name, email, age)
- relationship: علاقة: إزاي الكيانات بترتبط ببعض
- cardinality: عدد المرات اللي ممكن تتكرر فيها العلاقة (1:1, 1:N, N:M)
أسئلة انترفيو على القسم ده
3القسم 1 / 14