انتقل إلى محتوى الدرس

Adding Unique Constraints and Indexes إضافة قيود عدم التكرار والفهارس

نفّذ أوامر بناء الهيكلة DDL بأمان في PHP 8 عبر PDO::exec لإنشاء قواعد البيانات وجداول UTF8MB4 والمفاتيح الأساسية والفهارس.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تمنع قيود عدم التكرار UNIQUE على مستوى قاعدة البيانات تسجيل بريد إلكتروني أو رمز منتج مكرر حتى مع الطلبات المتزامنة، بينما تسرّع الفهارس INDEX استعلامات البحث.

  • الاكتفاء بفحص عدم التكرار في كود PHP فقط عرضة لتعارض الطلبات المتزامنة؛ لذا يجب فرض قيد UNIQUE داخل تصميم الجدول نفسه.
  • أضف فهارس (Indexes) على الأعمدة التي تُستخدم بكثرة في شروط WHERE أو JOIN أو ORDER BY.
  • اختر أطوالاً مناسبة لأعمدة النصوص المفهرسة (مثل VARCHAR(190) للبريد الإلكتروني) للحفاظ على خفة الفهرس في الذاكرة.

يفرض عمود email عدم التكرار مباشرة عبر محرك قاعدة البيانات، ويفهرس idx_users_role عمود الصلاحية لتسريع التصفية.

مخطط تدفق التنفيذ العملي لقسم إضافة قيود عدم التكرار والفهارس في لغة PHP
PHP
<?php
$pdo = new PDO('sqlite::memory:');
$pdo->exec('CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email VARCHAR(190) NOT NULL UNIQUE,
    role VARCHAR(30) NOT NULL DEFAULT "member"
)');
$pdo->exec('CREATE INDEX idx_users_role ON users (role)');
echo "Users table + UNIQUE email + role INDEX ready\n";