postgresql-table-design
تصميم مخطوطات PostgreSQL مع إرشادات الخبراء
يتطلب تصميم مخطوطات PostgreSQL معرفة بأنواع البيانات واستراتيجيات الفهرسة والقيود وأنماط الأداء. توفر هذه المهارة إرشادات شاملة حول أفضل الممارسات المتقدمة والمزالق الخاصة بـ PostgreSQL لمساعدتك في بناء مخطوطات قاعدة بيانات فعالة وقابلة للصيانة.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "postgresql-table-design". كيف يجب أن أتخزين القيم النقدية في PostgreSQL؟
النتيجة المتوقعة:
استخدم NUMERIC(p,s) للقيم النقدية، ولا تستخدم أبدًا أنواع float. على سبيل المثال: amount NUMERIC(10,2) للعملة مع رقمين عشريين. يوفر هذا حسابًا عشريًا دقيقًا بدون مشاكل دقة الفاصلة العائمة. تجنب نوع money المهمل.
استخدام "postgresql-table-design". ما الفرق بين BIGINT GENERATED ALWAYS AS IDENTITY وUUID للمفاتيح الأساسية؟
النتيجة المتوقعة:
- BIGINT GENERATED ALWAYS AS IDENTITY: معرفات صحيحة تسلسلية. مفضلة لمعظم حالات الاستخدام. الفوائد: تخزين أصغر، فهرسة أسرع، locality أفضل. استخدم عندما لا تكون الحاجة إلى العالمية عبر الأنظمة مطلوبة.
- UUID: معرفات فريدة عالميًا. استخدم عندما: دمج بيانات من قواعد بيانات مت��ددة، أو تعميم الأنظمة، أو الحاجة إلى معرفات غير تسلسلية غامضة. أنشئ باستخدام uuidv7() على PostgreSQL 18+ أو gen_random_uuid() على الإصدارات الأقدم.
استخدام "postgresql-table-design". هل يجب إضافة فهارس على أعمدة المفاتيح الخارجية؟
النتيجة المتوقعة:
نعم، أضف دائمًا فهارس صريحة على أعمدة المفاتيح الخارجية. PostgreSQL لا تفهرس تلقائيًا أعمدة FK على عكس بعض قواعد البيانات. هذا يسرع عمليات الربط ويمنع مشاكل القفل أثناء الحذف أو التحديث على جدول الأصل. مثال: CREATE INDEX ON orders (user_id) لمفتاح خارجي user_id.
التدقيق الأمني
آمنThis skill is a documentation-only resource providing PostgreSQL schema design guidance. All 237 static findings are false positives triggered by SQL examples and technical terminology in markdown code blocks. The skill contains no executable code, network calls, or file system access. Safe for publication.
درجة الجودة
ماذا يمكنك بناءه
تصميم مخطط قاعدة بيانات جديدة
احصل على إرشادات حول بنية الجدول وأنواع البيانات والقيود واستراتيجيات الفهرسة عند تصميم قاعدة بيانات PostgreSQL جديدة لتطبيق.
تحسين أداء المخطط الموجود
تعرف على استراتيجيات الفهرسة وخيارات التقسيم وأنماط الأداء لتحسين أداء الاستعلامات وتقليل انتفاخ قاعدة البيانات.
مراجعة قرارات تصميم المخطط
تحقق من صحة اختيارات أنواع البيانات واستخدام القرارات والقرارات المعيارية ضد أفضل ممارسات PostgreSQL قبل التنفيذ.
جرّب هذه الموجهات
أحتاج إلى إنشاء جدول مستخدمين مع البريد الإلكتروني والاسم والطوابع الزمنية. ما هو مخطط PostgreSQL الموصى به؟
أقوم بتخزين أسعار المنتجات وعناوين IP وتفضيلات المستخدم. ما أنواع بيانات PostgreSQL التي يجب أن أستخدمها؟
لدي جدول طلبات مع استعلامات تصفية حسب user_id وstatus وcreated_at. ما الفهارس التي يجب أن أنشئها؟
أحتاج إلى تخزين ملايين قراءات المستشعرات يوميًا مع استعلامات تصفية حسب الجهاز والنطاق الزمني. كيف يجب أن أخطط للتقسيم؟
أفضل الممارسات
- ابدأ بالمخطوطات المعيارية للشكل الثالث العادي وقم بإلغاء التطبيع فقط عندما تواجه مشاكل أداء محددة مع استعلامات عالية القيمة
- استخدم TIMESTAMPTZ لجميع أعمدة الطوابع الزمنية، وTEXT للسلاسل النصية، وNUMERIC للقيم النقدية، وBIGINT GENERATED ALWAYS AS IDENTITY للمفاتيح الأساسية ما لم تكن بحاجة إلى UUIDs
- أنشئ فهارس للأعمدة المستخدمة في عبارات WHERE وشروط JOIN وعبارات ORDER BY، وأضف دائمًا فهارس صريحة على أعمدة المفاتيح الخارجية
تجنب
- لا تستخدم أنواع البيانات VARCHAR(n) أو CHAR(n); استخدم TEXT مع قيود CHECK لحدود الطول إذا لزم الأمر
- لا تستخدم TIMESTAMP بدون zona الزمنية، أو نوع money، أو SERIAL; استخدم بدلاً منها TIMESTAMPTZ وNUMERIC وGENERATED ALWAYS AS IDENTITY
- لا تلغي تطبيع البيانات قبل قياس مشاكل الأداء الفعلية; يخلق إلغاء التهيئة المبكر عبء الصيانة بدون فوائد مثبتة