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

StackOverflow https://stackoverflow.com/questions/1058934

  •  21-08-2019
  •  | 
  •  

سؤال

وأنا أتساءل عما إذا كان من الممكن استخدام وFK في الخلية (ك InnoDB) للبحث معكوس.

والسبب - أريد أن أقرأ بنية تشبه XML من ديسيبل (باستخدام طاولة واحدة في "طبقة")، ولكن أن تكون قادرة على القيام بذلك بشكل حيوي. أريد أن أكون قادرا على تحديث البنية أكس بإضافة جدول جديد ووضع قيدا FK.

لتوضيح، ويقول لدينا الجدول "الأم" مع ومعرف (PARENT_ID) واثنين من الأعمدة الأخرى (K1 و K2). إن أكس تبدو وكأنها (حذف معرف):

<parent>
 <k1>v1</k1>
 <k2>v2</k2>
</parent>

والآن نضيف جدول تابع مع PARENT_ID المراجع المفتاح الخارجي والعمود الآخر (CK1). الاستعلام نفسه (مع بعض المعالجة بعد ذلك) الآن يجب أن تعطي:

<parent>
 <k1>v1</k1>
 <k2>v2</k2>
 <child>
  <ck1>cv1</ck1>
 </child>
</parent>

هل هذا ممكن؟ ل"SELECT * FROM parent_table" وتعيين بعض نوع من المعلمة أيضا للعودة إلى صفوف الأطفال نقاط اللي تبونه مرة أخرى مع FK؟

وشكرا جزيلا! / فيكتور

هل كانت مفيدة؟

المحلول

وبعد القراءة كثيرا، خيار واحد يتمثل في استخدام شيء مثل:

SELECT
  referenced_table_name parent,
  table_name child,
FROM
  information_schema.KEY_COLUMN_USAGE
WHERE
  referenced_table_name IS NOT NULL

وهذا يعطي جميع الجداول إنجاب الأطفال. سوف تصفية للعودة الأطفال فقط إلى الأصل المطلوب بالطبع يكون سهلا. على الجانب السلبي، ومع ذلك، الاستعلام إضافية أعلاه (والتجهيز) ستكون هناك حاجة.

ما زلت أحب أن نصل الى حل "أفضل"، ولكن هذا قد يكون على الأقل بداية؛)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top