اذهب إلى المحتوى
  • 0

تأثير وجود قيم Null في عمودين ذوي مفاتيح خارجية في جدول قاعدة البيانات

بندر البطاطي

السؤال

ماهي عيوب ان يوجد عمودين في الجدول يملكون مفتاح خارجي(foreign key) وفي كل ادخال للبيانات للجدول يكون احداهما قيمته null؟

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

الأمر يؤدي إلى عدة مشاكل منها:

1- عدم تكامل البيانات (Data Integrity)، فالهدف من مفاتيح الخارجية هو ضمان تكامل البيانات بين الجداول المرتبطة، وعند قيامك بتعيين أحد العمودين في المفتاح الخارجي بقيمة فارغة ، فذلك يعني أن القيمة المقابلة في العمود المرتبط مفقودة، وبالتي يؤدي إلى عدم دقة البيانات أو حتى إلى فقدان البيانات.

وسأفترض أن لديك جدولين مرتبطين، أحدهما يسمى "الموظفين" والآخر يسمى "المديرون". العمود "مدير" في جدول الموظفين هو مفتاح خارجي يشير إلى العمود "معرف المدير" في جدول المديرين، وإن قمت بإدخال سجل جديد في جدول الموظفين مع قيمة فارغة في العمود "مدير"، بالتالي الموظف المعني ليس لديه مدير، وذلك يؤدي إلى مشاكل في إدارة الموظفين، مثل عدم القدرة على تتبع التقارير الإدارية للموظفين.

2- صعوبة الاستعلام عن البيانات (Data Querying) عندما تريد العثور على جميع السجلات في جدول يكون فيها عمود المفتاح الخارجي فارغًا، فلو لديك جدولًا يسمى "المنتجات" يحتوي على عمود "مزود" هو مفتاح خارجي يشير إلى جدول "الموردين، وقمت بإدخال سجل جديد في جدول المنتجات مع قيمة فارغة في العمود "مزود"، فالنتيجة هي أن المنتج غير مرتبط بأي مورد. إذا كنت تريد العثور على جميع المنتجات التي لا ترتبط بأي مورد، وسيصعب القيام بذلك لأنك لا تستطيع استخدام المفتاح الخارجي للتصفية على البيانات.

3- صعوبة معالجة البيانات (Data Processing)، ففي حال يوجد جدول باسم "الطلبات" يحتوي على عمود "رقم المنتج" هو مفتاح خارجي يشير إلى جدول "المنتجات"، فعند إدخال سجل جديد في جدول الطلبات مع قيمة فارغة في العمود "رقم المنتج"، أي أن الطلب غير مرتبط بأي منتج. إذا كنت تريد حساب إجمالي قيمة جميع الطلبات التي تم تقديمها لنفس المنتج، وبالتالي من الصعب القيام بذلك لأنك لا تستطيع استخدام المفتاح الخارجي للتصفية على البيانات.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

كما أخبرك مصطفى في التعليق السابق يتسبب ذلك في صعوبة في الاستعلامات: عندما يكون لديك قيمة NULL في عمود المفتاح الخارجي، فإنه يمكن أن يتسبب في صعوبة أثناء كتابة الاستعلامات.

قد تحتاج إلى استخدام عبارات معقدة مثل "IS NULL" أو "IS NOT NULL" للتعامل مع القيم NULL وضمان استرداد البيانات الصحيحة.

بالإضافة أيضاً يمكن أن يتسبب وجود عمودين يحتويان على مفتاح خارجي وقيمة NULL في تعقيدات في تصميم قاعدة البيانات. يجب التفكير بعناية في كيفية التعامل مع هذه القيم NULL وكيفية ضمان سلامة البيانات.

بشكل عام، يجب تجنب وجود عمودين في الجدول يحتويان على مفتاح خارجي وقيمة NULL قدر الإمكان، ومحاولة استخدام قيم غير NULL أو استخدام قيم افتراضية للتعامل مع هذه الحالة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...