الفرق بين عمود فورين كي وعمود من نفس الجدول

ياجماعة عندي سؤال...

عملت مرة تجربة لرؤية الفرق بين عمود الفورين كي والعمود الأصلي من نفس الجدول من حيث المساحة

يعني كان فيه عمود جدول كان لازم أضع فيه قيمة واحدة من خمس قيم كل قيمة من هذي الخمس القيم

حجمها فوق 30 حرف فبدلا ما أكتبها في عمود في نفس الجدول عملت لها جدول خاص يعوض عنها برقم

( يعني ما أرجع أكتب هذي القيم الخمسة نفسها لأ أكتب رقم بدلا عنها ) من أجل أوفر في المساحة المشكلة

عملت الطريقتين عملت جدول فيه هذا العمود صاحب القيم الخمس في قاعدة بيانات لنفسه وطبقت نفس

الفكرة في قاعدة بيانات جديدة لكن هذي المرة أستخدمت الفورين كي وعندما جئت لمشاهدة حجم قاعدة

البيانات ظهرت قاعدة البيانات الأثنين بنفس الحجم لماذا ؟ المفروض تكون قاعدة البيانات المستخدم فيها

فورين كي أصغر من الأولى لأنها يتم التعويض عنها برقم في عمود الفورين ... هل أحد يقدر يشرح السبب/

أو الفروقات والأختلافات بين الطريقتين و أيهما أفضل...وشكرا

الأخ عبدالله عمر


في البداية دعني اشرح لك ماهو ال foreign key ولماذا نستخدمه :

ال foreign key هو مفتاح يكون اساسي في الجدول الاول وفرعي في الجدول الثاني وتكون وظيفته عمل ربط بين هذين الجدولين في قاعدة البيانات على سبيل المثال لدينا هذان الجدولان

class(class_id , class_name)

student(student_id ,student_name ,age ,class_id)

لاحظ هنا لدينا ال class_id هو عبارة عن primary key اي المفتاح الاساسي في جدول ال class واستخدمته للوصل بينه وبين جدول ال student ليصبح foreign key في جدول الstudent

ومن فوائده

  • منع التكرار : كي لا تقم بتكرار رقم و اسم الصف في كل مرة تقوم باضافة تلميذ جديد نكتفي بوضع رقم الصف فقط
  • تحسين اداء الاستعلامات : باستخدامه نستطيع اجراء استعلامات بشكل اسرع ومرتب اكثر
  • الربط بين الجداول : وهذه هي الوظيفية الاهم والاساسية له

لذلك ان كان لديك جداول بينهم ربط بالمعلومات ف انصحك ان تستخدم ال foreign key بكل تأكيد لتحسين العمل وضمان اخترافيته

اما بالنسبة لسؤالك عن المساحة ف ان ال foreign key لا يأخذ سوى مساحة عاموده ومن الطبيعي ان يكون الجدول الجديد مساحته اقل حجما من الجدول الاساسي لانه لا يقوم بأدراج كامل البيانات بها وانما الرقم فقط

لذلك اظن انه لديك بيانات اخرى في الجدول الجديد غير ال foreign key لذلك وجدت المساحة كبيرة ارجو التأكد والتدقيق في ذلك

بالتوفيق لك