التعامل مع المفاتيح الخارجية لجداول متعددة
لديك ثلاثة جداول: المناطق والبلدان والولايات. يمكن أن تنتمي البلدان والدول إلى مناطق، وتشكل هيكلًا هرميًا. الآن، تريد إنشاء جدول "المناطق_الشعبية" باستخدام العمودين "region_id" و"popular_place_id" وإنشاء علاقة مفتاح خارجي بين "popular_place_id" وإما البلدان أو الولايات بناءً على عمود "نوع_المكان_الشعبي".
هذا يمثل السيناريو تحديًا لأن قيود المفتاح الخارجي لـ SQL تشير عادةً إلى جدول هدف واحد. ومع ذلك، هناك مفهوم يعرف باسم الارتباطات متعددة الأشكال في تصميم قاعدة البيانات والذي يحاول معالجة هذه المشكلة.
الارتباطات متعددة الأشكال: الانضمام إلى جداول متعددة مع نوع رئيسي مشترك
تسمح الارتباطات متعددة الأشكال مفتاح خارجي للإشارة إلى أحد الجداول المستهدفة العديدة المحتملة. ويتم تحقيق ذلك باستخدام عمود إضافي لتحديد الجدول الهدف الذي سيتم الرجوع إليه. على سبيل المثال، في حالتك، ستحتاج إلى عمود "popular_place_type" لتحديد ما إذا كان "popular_place_id" يشير إلى بلد أو ولاية.
ومع ذلك، فإن الارتباطات متعددة الأشكال لها قيود في SQL بسبب القيود. لا يمكن لـ SQL فرض تناسق قاعدة البيانات مع الارتباطات متعددة الأشكال. بدلاً من ذلك، يعتمد على التطبيق أو إطار العمل الذي ينفذ هذه الارتباطات لضمان سلامة البيانات.
الحلول البديلة لمراجع المفاتيح الخارجية إلى جداول متعددة
للحفاظ على التكامل المرجعي بدون تعدد الأشكال الجمعيات، فكر في هذه البدائل:
من المهم ملاحظة أن الارتباطات متعددة الأشكال تنتهك مبادئ تطبيع قاعدة البيانات. يحظر النموذج العادي الأول (1NF) خلط معاني مختلفة في عمود واحد، وهو ما يحدث عند تخزين معرفات الولاية والبلد في عمود "popular_place_id" واحد. تنتهك الارتباطات متعددة الأشكال أيضًا النموذج العادي الثالث (3NF) لأن معنى عمود "popular_place_id" يعتمد على عمود "popular_place_type" الإضافي.
باختصار، تقدم الارتباطات متعددة الأشكال حلاً محتملاً لعلاقات المفاتيح الخارجية لجداول متعددة في SQL. ومع ذلك، فإنها تقدم تحديات تتعلق بسلامة البيانات وتنتهك مبادئ تطبيع قاعدة البيانات. فكر في الأساليب البديلة المذكورة أعلاه لإدارة البيانات بشكل فعال.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3