SQL FOREIGN KEY Constraint
در SQL از FOREIGN KEY Constraint برای ایجاد ارتباط بین دو جدول استفاده میکنیم.
کلید خارجی مشخص میکنه که مقدار یک ستون (در جدول فرزند) باید با مقدار ستون کلید اصلی (در جدول والد) مطابقت داشته باشه.
🔹 مفهوم ساده
-
جدول اصلی (Parent Table) → شامل Primary Key است.
-
جدول فرزند (Child Table) → شامل Foreign Key است که به ستون جدول اصلی اشاره میکند.
🔹 ساختار کلی
🔹 مثال ساده
📌 توضیح:
-
جدول
Departments
شامل اطلاعات دپارتمانهاست. -
جدول
Employees
شامل کارکنانه و ستونDepartmentID
به جدولDepartments
اشاره میکنه. -
یعنی هر کارمند باید به دپارتمانی تعلق داشته باشه که واقعاً در جدول
Departments
وجود داره.
🔹 درج داده معتبر
✅ معتبره چون DepartmentID = 1
در جدول Departments
وجود داره.
🔹 درج داده نامعتبر
❌ خطا: مقدار 5
در جدول Departments
وجود نداره، پس نقض کلید خارجی محسوب میشه.
🔹 افزودن FOREIGN KEY بعد از ساخت جدول
🔹 حذف FOREIGN KEY
🔹 گزینههای حذف و بهروزرسانی (ON DELETE / ON UPDATE)
میتونیم مشخص کنیم وقتی رکوردی از جدول والد حذف یا تغییر میکنه، در جدول فرزند چه اتفاقی بیفته:
📌 توضیح:
-
ON DELETE CASCADE
→ اگر یک دپارتمان حذف شود، تمام کارکنان آن نیز حذف میشوند. -
ON UPDATE CASCADE
→ اگر مقدار کلید اصلی تغییر کند، مقدار در جدول فرزند نیز بهروز میشود.
🔹 نکات مهم
-
کلید خارجی به کلید اصلی یا UNIQUE در جدول دیگر اشاره میکنه.
-
هدفش حفظ یکپارچگی دادهها (Data Integrity) است.
-
میتونه از حذف یا درج دادههای اشتباه جلوگیری کنه.
-
در SQL Server، MySQL و PostgreSQL بهصورت مشابه کار میکنه.