شرح صفوف ومحتوى الفقرة
تُعد علاقة واحد لمتعدد (1:N) العمود الفقري لتصميم قواعد البيانات العلائقية (مثل: قسم واحد يضم عدة موظفين، أو عميل واحد ينشئ عدة طلبات):
- القاعدة الذهبية لموقع المفتاح الأجنبي: يوضع عمود المفتاح الأجنبي دائماً في جدول الطرف «المتعدد» (الابن) ليشير إلى المفتاح الأساسي في جدول الطرف «الواحد» (الأب).
- قبول تكرار المفتاح الأجنبي: نظراً لأن العميل الواحد قد يطلب 10 مرات، فإن العمود
customer_idداخل جدولordersيسمح بتكرار رقم العميل عبر عدة صفوف.
SQL
CREATE TABLE orders (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
customer_id INT UNSIGNED NOT NULL,
order_total DECIMAL(10, 2) NOT NULL,
CONSTRAINT fk_orders_customer
FOREIGN KEY (customer_id) REFERENCES customers(id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;