database-design
أتقن تصميم قواعد البيانات وقرارات المخططات
يواجه المطورون صعوبة في خيارات قواعد البيانات ومخاطر تصميم المخططات. تعلّم هذه المهارة أطر اتخاذ القرارات لاختيار قواعد البيانات وتصميم المخططات وتحسين الاستعلامات بناءً على السياق.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "database-design". أحتاج لاختيار قاعدة بيانات لتطبيق محادثة فورية مع 10,000 مستخدم متزامن وتوزيع عالمي ومتطلبات زمن انتقال أقل من 50ms.
النتيجة المتوقعة:
لدردشة فورية عالمية مع متطلبات زمن انتقال صارمة، فكر في Turso (edge SQLite) للوجود وبيانات التعريف للرسائل، مع مثيل PostgreSQL أساسي للتخزين الدائم. يوفر Turso نشر edge يقلل زمن الانتقال، بينما يتعامل PostgreSQL مع الاستعلامات والمعاملات المعقدة. بديل: PlanetScale لتوافق MySQL مع التفرع العالمي.
استخدام "database-design". هل يجب تطبيع جدول تفضيلات المستخدم أم تخزينه كـ JSONB؟
النتيجة المتوقعة:
خزن كـ JSONB إذا: نادرًا ما تُستعلم التفضيلات بشكل فردي، يتطور المخطط بشكل متكرر، وتَجلب دائمًا المجموعة الكاملة. طبّع إذا: تحتاج لاستعلام تفضيلات محددة في بنود WHERE، تفضيلات مختلفة لها ترددات تحديث مختلفة، أو تحتاج قيود مفتاح خارجي. نهج هجين: JSONB لتفضيلات مرنة مع جدول معياري للإعدادات التي يُفلتر بها بشكل متكرر.
التدقيق الأمني
آمن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.
درجة الجودة
ماذا يمكنك بناءه
إعداد قاعدة بيانات لمشروع جديد
مؤسس شركة ناشئة يبني منتجًا أوليًا يحتاج إلى إرشاد للاختيار بين 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 * في استعلامات الإنتاج بدلاً من تحديد الأعمدة المطلوبة صراحةً