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

Composite Keys in Pivot Tables المفتاح المركب بجدول الربط

تعلّم العلاقات بين الجداول واحد لواحد وواحد لمتعدد ومتعدد لمتعدد في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

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

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

عند هندسة مفاتيح جدول الربط الوسيط مثل order_items أو user_roles، تتاح أمامك طريقتان قياسيتان:

  • المفتاح الأساسي المركب PRIMARY KEY (order_id, product_id): يجعل زوج المفتاحين الأجنبيين هو المفتاح الأساسي العنقودي مباشرة في InnoDB، مما يمنع تكرار نفس المنتج داخل نفس الطلب دون الحاجة لعمود ترقيم إضافي.
  • مفتاح متسلسل id مع قيد UNIQUE (order_id, product_id): يُستخدم عندما تتطلب أطر العمل معرفاً مفرداً مع الحفاظ على منع ازدواج الزوج.
SQL
CREATE TABLE order_items (
  order_id INT UNSIGNED NOT NULL,
  product_id INT UNSIGNED NOT NULL,
  quantity SMALLINT UNSIGNED NOT NULL DEFAULT 1,
  unit_price DECIMAL(10, 2) NOT NULL,
  PRIMARY KEY (order_id, product_id),
  FOREIGN KEY (order_id) REFERENCES orders(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;