شرح صفوف ومحتوى الفقرة
تربط علاقة واحد لواحد (1:1) سجلاً واحداً في الجدول الأول بسجل واحد فقط على الأكثر في الجدول الثاني (مثل جدول الحسابات السريع users وجدول الهوية التفصيلي user_profiles):
- متى نستخدم فصل 1:1؟ لعزل البيانات السرية الحساسة أو الحقول النصية الضخمة النادرة الاستخدام عن جدول تسجيل الدخول السريع.
- كيف نفرض 1:1 برمجياً في SQL؟ بإضافة قيد التفرد
UNIQUEعلى عمود المفتاح الأجنبي، أو جعل عمود المفتاح الأجنبي نفسه هوPRIMARY KEYللجدول التابع.
SQL
CREATE TABLE user_profiles (
user_id INT UNSIGNED PRIMARY KEY,
passport_no VARCHAR(30) NOT NULL UNIQUE,
bio_summary TEXT,
CONSTRAINT fk_profile_user
FOREIGN KEY (user_id) REFERENCES customers(id)
ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;