"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يمكن للمفتاح الخارجي الرجوع إلى جداول متعددة في SQL؟

هل يمكن للمفتاح الخارجي الرجوع إلى جداول متعددة في SQL؟

تم النشر بتاريخ 2024-11-20
تصفح:196

Can a Foreign Key Reference Multiple Tables in SQL?

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

ينشئ قيد المفتاح الخارجي التقليدي رابطًا مباشرًا بين جدولين محددين. ومع ذلك، ماذا لو كنت بحاجة إلى علاقة متعددة الأشكال حيث يشير العمود إلى واحد من عدة جداول أصل محتملة؟

هل من الممكن وجود مفتاح خارجي لجداول متعددة؟

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

اعتبارات عملية

على الرغم من القيود الكامنة، هناك أساليب عملية تحاكي سلوك أ المفتاح الخارجي لجداول متعددة:

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

أمثلة في MySQL وPostgreSQL

في MySQL، ما يلي تقوم العبارة بإنشاء جدول موحد:

CREATE TABLE union_table AS
SELECT * FROM subordinates
UNION ALL
SELECT * FROM products;

سيكون قيد المفتاح الخارجي في الجدول الفرعي:

ALTER TABLE images
ADD FOREIGN KEY (person_id) REFERENCES union_table(id);

في PostgreSQL، يتم استخدام أسلوب مماثل:

CREATE TABLE union_table AS
SELECT * FROM subordinates
UNION ALL
SELECT * FROM products;

يصبح قيد المفتاح الخارجي:

ALTER TABLE images
ADD FOREIGN KEY (person_id) REFERENCES union_table(id);

الاستنتاج

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

بيان الافراج أعيد طبع هذه المقالة على: 1729692611 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3