المهارات database-design
📦

database-design

آمن

أتقن تصميم قواعد البيانات وقرارات المخططات

يواجه المطورون صعوبة في خيارات قواعد البيانات ومخاطر تصميم المخططات. تعلّم هذه المهارة أطر اتخاذ القرارات لاختيار قواعد البيانات وتصميم المخططات وتحسين الاستعلامات بناءً على السياق.

يدعم: Claude Codex Code(CC)
🥉 76 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "database-design". أحتاج لاختيار قاعدة بيانات لتطبيق محادثة فورية مع 10,000 مستخدم متزامن وتوزيع عالمي ومتطلبات زمن انتقال أقل من 50ms.

النتيجة المتوقعة:

لدردشة فورية عالمية مع متطلبات زمن انتقال صارمة، فكر في Turso (edge SQLite) للوجود وبيانات التعريف للرسائل، مع مثيل PostgreSQL أساسي للتخزين الدائم. يوفر Turso نشر edge يقلل زمن الانتقال، بينما يتعامل PostgreSQL مع الاستعلامات والمعاملات المعقدة. بديل: PlanetScale لتوافق MySQL مع التفرع العالمي.

استخدام "database-design". هل يجب تطبيع جدول تفضيلات المستخدم أم تخزينه كـ JSONB؟

النتيجة المتوقعة:

خزن كـ JSONB إذا: نادرًا ما تُستعلم التفضيلات بشكل فردي، يتطور المخطط بشكل متكرر، وتَجلب دائمًا المجموعة الكاملة. طبّع إذا: تحتاج لاستعلام تفضيلات محددة في بنود WHERE، تفضيلات مختلفة لها ترددات تحديث مختلفة، أو تحتاج قيود مفتاح خارجي. نهج هجين: JSONB لتفضيلات مرنة مع جدول معياري للإعدادات التي يُفلتر بها بشكل متكرر.

التدقيق الأمني

آمن
v1 • 2/24/2026

All static analyzer findings are false positives. The 'external_commands' detections are markdown code fence blocks (```) used for educational diagrams, not executable shell commands. The 'weak cryptographic algorithm' flags reference UUID/ULID discussions in documentation context. The schema_validator.py is a legitimate local Python script for Prisma schema validation. This is a documentation-only skill teaching database design principles.

8
الملفات التي تم فحصها
489
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

45
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

إعداد قاعدة بيانات لمشروع جديد

مؤسس شركة ناشئة يبني منتجًا أوليًا يحتاج إلى إرشاد للاختيار بين PostgreSQL أو SQLite أو خيارات بدون خادم. توفر المهارة شجرة قرارات بناءً على احتياجات التوسع والميزانية وتفضيلات النشر.

مراجعة تصميم المخطط

مهندس الواجهة الخلفية الذي يصمم ميزة جديدة يحتاج إلى مساعدة في نمذجة علاقات المستخدمين والطوابع الزمنية وقيود المفتاح الخارجي. تراجع المهارة مقايضات التطبيع وأنماط العلاقات.

استكشاف مشاكل أداء الاستعلامات

مطور يواجه استعلامات بطيئة يحتاج إلى فهم استراتيجيات الفهرسة ومشاكل N+1. تشرح المهارة تفسير EXPLAIN ANALYZE وتصميم الفهارس المركبة.

جرّب هذه الموجهات

مبتدئ: اختيار قاعدة البيانات
أبني تطبيق {project_type} مع {expected_users} مستخدم. ميزانيتي {budget_level} وأحتاج {specific_requirements}. بناءً على دليل اختيار قاعدة البيانات، أوصِ بأفضل خيار لقاعدة البيانات واشرح المقايضات.
متوسط: مراجعة تصميم المخطط
راجع تصميم المخطط الخاص بي لجدول {table_name}. أحتاج لتخزين {data_fields} مع علاقات بـ {related_tables}. تحقق مما إذا كان نهجي يتبع مبادئ التطبيع، وله فهارس مناسبة، ويستخدم أنواع العلاقات الصحيحة.
متقدم: تحسين الاستعلامات
استعلامي لـ {query_description} يستغرق {execution_time}. هذا هو خرج EXPLAIN ANALYZE: {explain_output}. حدد عنق الزجاجة وأوصِ باستراتيجيات محددة للفهرسة أو إعادة هيكلة الاستعلام.
خبير: استراتيجية الترحيل
أحتاج للترحيل من {current_schema} إلى {target_schema} مع توقف صفري. الجدول يحتوي على {row_count} صفوف ويخدم حركة مرور {traffic_level}. صمم استراتيجية ترحيل باستخدام التقنيات من دليل الترحيلات.

أفضل الممارسات

  • دائمًا عرّف created_at و updated_at باستخدام TIMESTAMPTZ للوعي بالمنطقة الزمنية
  • استخدم مفاتيح أولية UUID أو ULID للأنظمة الموزعة لتجنب هجمات التعداد وتمكين إنشاء معرفات دون اتصال
  • أنشئ فهارس مركبة تطابق أنماط الاستعلام الأكثر شيوعًا مع أعمدة التساوي قبل أعمدة النطاق

تجنب

  • الافتراضي إلى PostgreSQL للتطبيقات البسيطة حيث يكفي SQLite، مما يضيف تعقيد بنية تحتية غير ضروري
  • إنشاء فهارس على كل عمود دون النظر في تأثير أداء الكتابة وعدم كفاءة البطاقة المنخفضة
  • استخدام SELECT * في استعلامات الإنتاج بدلاً من تحديد الأعمدة المطلوبة صراحةً

الأسئلة المتكررة

متى يجب اختيار SQLite على PostgreSQL؟
اختر SQLite لـ: التطبيقات المدمجة، التطوير المحلي، أحمال العمل كثيفة القراءة تحت 100K طلب/يوم، سيناريوهات الكاتب الواحد، أو عندما البساطة أهم من الميزات. اختر PostgreSQL لـ: كتابات متزامنة، ميزات SQL متقدمة (CTEs، دوال النوافذ)، أمان مستوى الصف، معاملات معقدة، أو عندما تحتاج إثباتًا ومسارات تدقيق.
ما هي مشكلة استعلام N+1 وكيف أصلحها؟
يحدث N+1 عندما تجلب سجلات أصلية (استعلام 1) ثم تكرر لجلب السجلات ذات الصلة (N استعلام). أصلح باستخدام: JOINs لدمج البيانات في استعلام واحد، تحميل متحمس في ORMs، DataLoader للتجميع في GraphQL، أو استعلامات فرعية لجلب كل السجلات ذات الصلة دفعة واحدة. استخدم دائمًا EXPLAIN ANALYZE للتحقق من عمل الإصلاح.
كيف أقرر بين Drizzle و Prisma و Kysely؟
Drizzle: خفيف، بناء جملة شبيه بـ SQL، جيد للبدون خادم و edge. Prisma: ORM كامل الميزات مع ترحيلات، إنشاء أنواع، وواجهة مستخدم studio. Kysely: باني استعلامات TypeScript-first مع أمان أنواع صارم. اختر Drizzle للحد الأدنى، Prisma لاحتياجات ORM الكاملة، أو Kysely لبناء استعلامات آمن الأنواع بدون تجريد ORM.
ما الأعمدة التي يجب فهرستها للأداء الأمثل؟
فهرس الأعمدة المستخدمة في: بنود WHERE للتصفية، شروط JOIN للعلاقات، ORDER BY للفرز، وأعمدة المفاتيح الخارجية لاستعلامات العلاقات. تجنب فهرسة: أعمدة بط CARDINALITY منخفضة (boolean، الجنس)، أعمدة نادرًا تُستخدم في الاستعلامات، أو جداول بحركة كتابة كثيفة حيث إبطاء صيانة الفهرس للإدخالات.
كيف أرحّل جدولًا كبيرًا بأمان مع توقف صفري؟
استخدم نمط التوسيع والتقليص: المرحلة 1 (توسيع) تضيف عمود/جدول جديد مع الحفاظ على القديم. المرحلة 2 تملأ البيانات والكتابة المزدوجة. المرحلة 3 ترحل القراءات تدريجيًا. المرحلة 4 (تقلص) تزيل العمود/الجدول القديم بعد التحقق. استخدم معالجة الدُفعات لملء البيانات لتجنب تنازع القفل، وأعلام الميزات للطرح التدريجي.
ما الفرق بين Neon و Supabase و PostgreSQL ذاتي الاستضافة؟
Neon: PostgreSQL بدون خادم مع تفرع قواعد البيانات (مثل git)، توسيع تلقائي، وتسعير الدفع مقابل الاستخدام. Supabase: PostgreSQL بالإضافة إلى اشتراكات فورية، مصادقة، تخزين، ودوال edge كمنصة خلفية. ذاتية الاستضافة: تحكم كامل في التكوين والإضافات والتكاليف لكن تتطلب خبرة تشغيلية. اختر Neon للبدون خادم، Supabase لميزات الواجهة الكاملة، ذاتية الاستضافة للتحكم.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main