تسبب أخطاء تصميم مخطط قاعدة البيانات مشاكل في الأداء ومشاكل في سلامة البيانات. توفر هذه المهنة أفضل الممارسات الخاصة بـ PostgreSQL لأنواع البيانات والفهارس والقيود وأنماط التوسع.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "postgresql". صمم جدول users مع email و name والطوابع الزمنية
النتيجة المتوقعة:
- CREATE TABLE users (
- user_id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
- email TEXT NOT NULL UNIQUE,
- name TEXT NOT NULL,
- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
- updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
- );
- CREATE UNIQUE INDEX ON users (LOWER(email));
استخدام "postgresql". هل يجب استخدام UUID أو BIGINT للمفاتيح الأساسية؟
النتيجة المتوقعة:
- استخدم BIGINT GENERATED ALWAYS AS IDENTITY عندما:
- - المعرفات المتسلسلة مقبولة
- - أداء الفهرس أمر بالغ الأهمية
- - حجم الفهرس الأصغر مهم
- استخدم UUID عندما:
- - التفرد العالمي مطلوب
- - غموض المعرف هو متطلب أمني
- - دمج البيانات من مصادر متعددة
التدقيق الأمني
آمنAll 221 static analyzer findings were determined to be false positives. The skill consists entirely of markdown documentation (SKILL.md) with no executable code. Backtick characters are markdown formatting for code examples, not shell execution. References to security features like Row Level Security are PostgreSQL documentation, not Windows SAM access. The skill provides educational guidance for database schema design with no security risks.
درجة الجودة
ماذا يمكنك بناءه
تصميم مخطط تطبيق جديد
تصميم مخطط قاعدة بيانات كامل لتطبيق ويب جديد مع أنواع بيانات مناسبة ومفاتيح أساسية وعلاقات مفاتيح خارجية وفهارس لأنماط الاستعلام الشائعة.
مراجعة المخطط وتحسينه
مراجعة تصاميم الجداول الحالية للكشف عن مشاكل الأداء أو الفهارس المفقودة أو أنواع البيانات غير المناسبة أو ثغرات القيود التي قد تسبب مشاكل في سلامة البيانات.
تخطيط الترحيل
تخطيط التطور الآمن للمخطط مع DDL المعاملات وإنشاء الفهارس المتزامن واستراتيجيات لإضافة أعمدة إلى الجداول الكبيرة دون توقف.
جرّب هذه الموجهات
صمم جدول PostgreSQL لتخزين ملفات تعريف المستخدمين مع حقول للبريد الإلكتروني والاسم وتاريخ التسجيل وإعدادات الملف الشخصي الاختيارية. استخدم أنواع البيانات والقيود المناسبة.
لدي جدول queries مع الأعمدة: id, user_id, status, created_at. الاستعلامات الشائعة تقوم بالتصفية حسب user_id و status، والفرز حسب created_at تصاعدياً. أوصِ باستراتيجية فهرسة.
هل يجب تخزين سمات المنتج في عمود JSONB أم إنشاء أعمدة منفصلة؟ السمات تختلف حسب فئة المنتج والمستخدمون يبحثون بشكل متكرر عن سمات محددة.
لدي جدول events ينمو بمعدل 10 ملايين صف شهرياً. الاستعلامات عادةً تصفّي حسب event_date و device_id. أوصِ باستراتيجية تقسيم واشرح المفاضلات.
أفضل الممارسات
- استخدم TIMESTAMPTZ بدلاً من TIMESTAMP لجميع طوابع الأحداث الزمنية لتجنب الارتباك في المنطقة الزمنية
- أضف فهارس صريحة على أعمدة المفاتيح الخارجية لأن PostgreSQL لا ينشئها تلقائياً
- طبيع إلى 3NF أولاً، ثم قم بإلغاء التطبيع فقط لتحسينات الأداء القابلة للإثبات ذات العائد المرتفع
تجنب
- استخدام VARCHAR مع حدود الطول بدلاً من TEXT مع قيود CHECK
- إنشاء فهارس على كل عمود دون تحليل أنماط الاستعلام الفعلية
- استخدام SERIAL بدلاً من GENERATED ALWAYS AS IDENTITY لأعمدة الزيادة التلقائية