قيود المفتاح الخارجي متعددة الأشكال: نهج متعدد الاستخدامات
ينشئ قيد المفتاح الخارجي التقليدي رابطًا مباشرًا بين جدولين محددين. ومع ذلك، ماذا لو كنت بحاجة إلى علاقة متعددة الأشكال حيث يشير العمود إلى واحد من عدة جداول أصل محتملة؟
هل من الممكن وجود مفتاح خارجي لجداول متعددة؟
لسوء الحظ، الجواب سلبي. يمكن أن يشير قيد المفتاح الخارجي فقط إلى جدول أصل واحد. ينشأ هذا القيد من الحاجة إلى تكامل البيانات واتساقها في أنظمة قواعد البيانات.
اعتبارات عملية
على الرغم من القيود الكامنة، هناك أساليب عملية تحاكي سلوك أ المفتاح الخارجي لجداول متعددة:
أمثلة في 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. تحافظ هذه الاستراتيجيات على سلامة البيانات مع توفير المرونة اللازمة لاستيعاب الجداول الرئيسية المتعددة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3