يا هلا! اليوم بنتكلم عن شيء أساسي ومهم جداً في قواعد البيانات: المفاتيح الرئيسية (Primary Keys).
إيش هو الـ Primary Key؟
ببساطة، الـ Primary Key هو عمود (أو مجموعة أعمدة) في جدولك، وظيفته الوحيدة هي تحديد كل صف بشكل فريد. يعني مستحيل تلاقي صفين لهم نفس قيمة الـ Primary Key.
ليش نحتاجه؟
- التعرف الفريد: يضمن لك إن كل سجل له هوية خاصة فيه وما يتكرر.
- الربط بين الجداول: هو الأساس اللي نبني عليه العلاقات بين الجداول (عن طريق المفاتيح الخارجية Foreign Keys). بدون Primary Key، جداولك بتكون معزولة وصعب تربط بياناتها.
- الأداء: غالباً قواعد البيانات تسوي فهارس (indexes) على الـ Primary Keys، وهذا يسرّع عمليات البحث والاستعلام بشكل كبير.
قواعد أساسية للـ Primary Key:
ملاحظة: الـ Primary Key لازم يكون فريد (UNIQUE) وما يقبل قيم فارغة (NOT NULL). لو ما حددتهم، قاعدة البيانات بتفرضهم عليك تلقائياً لما تعرف Primary Key.
كيف تعرف Primary Key؟
1. عند إنشاء الجدول (CREATE TABLE):
هذي الطريقة الأكثر شيوعاً. تقدر تحدده على عمود واحد أو أكثر.
أ. عمود واحد (Single Column Primary Key):
هنا عمود id هو الـ Primary Key.
CREATE TABLE Users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100)
);
أو تقدر تعرفه في نهاية الجدول:
CREATE TABLE Products (
product_id INT,
product_name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2),
PRIMARY KEY (product_id)
);
ب. مفتاح مركب (Composite Primary Key):
أحياناً تحتاج أكثر من عمود عشان تحدد السجل بشكل فريد. مثلاً، في جدول يربط الطلاب بالدورات اللي مسجلين فيها، ممكن يكون student_id و course_id مع بعض هم الـ Primary Key.
CREATE TABLE Enrollments (
student_id INT,
course_id INT,
enrollment_date DATE,
PRIMARY KEY (student_id, course_id)
);
هنا، ما تقدر تسجل نفس الطالب في نفس الدورة مرتين.
2. إضافة Primary Key لجدول موجود (ALTER TABLE):
لو عندك جدول سويته ونسيت تحط له Primary Key، تقدر تضيفه بعدين (بشرط إن العمود/الأعمدة اللي بتختارها ما فيها قيم مكررة أو فارغة).
ALTER TABLE Orders
ADD PRIMARY KEY (order_id);
نصيحة سريعة:
أفضل الممارسات: دائماً استخدم عمود من نوع رقمي (مثل
INTأوBIGINT) ويفضل يكونAUTO_INCREMENT(أوIDENTITYفي SQL Server) كـ Primary Key. هذا يضمن لك قيم فريدة ومتسلسلة وسهلة التعامل.
خلاصة الكلام:
الـ Primary Key مو بس ميزة، هو ضرورة لأي جدول في قاعدة بيانات علائقية. يضمن سلامة البيانات، يسهل الربط بين الجداول، ويحسن الأداء. لا تنساه أبداً!