كيف ينبغي تصميم جدول مع مجموعتين من أسماء الأعمدة المكررة تقريبًا؟

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

سؤال

لدي جدول يحتوي على حوالي 40 عمودًا. الفرق الوحيد في أسماء الأعمدة هو أن العشرين الأخيرة كلها تبدأ بـ "B" قبل اسم العمود. يستخدم هذا الجدول للمقارنة. بمعنى آخر ، قارن البيانات في الأعمدة العشرين الأولى بالبيانات في العشرين الأعمدة الأخيرة.

أعلم أن هذا تصميم سيء للغاية ، فكيف ينبغي إعادة تصميم هذا الجدول ، بحيث لا يوجد سوى 20 عمودًا ، ومع ذلك لا يزال بإمكاننا مقارنة البيانات؟

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

لاحظ أيضًا أن الأداء يثير القلق الرئيسي هنا. من خلال تكرار الأعمدة ، يكون الحصول على البيانات سريعًا للغاية.

شكرًا!

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

المحلول

اثنين من البنية الممكنة ونصيحة الاستعلام.

1) قم بإنشاء الجدول الخاص بك مع عمود "نوع" ، واستخدم ذلك للإعلام "الأساسي" مقابل "البديل". في حالتك ، قد تكون "A" مقابل "B" مناسبة.

2) بناء قسم عمودي ، جدولين متطابقين (للبيانات الأولية والبديلة) ، والتي تشترك في مفتاح أساسي مشترك. (إذا كان المعرف = 42 في جدول واحد ، فيجب أن يكون في الآخر-ما لم تكن بيانات "بديلة" لا حصرها اختياريًا ، وفي هذه الحالة لا تملأ الجدول الثاني.) أيضًا اختياريًا ، لديك جدول ثالث يتتبع كل ما يتبعه الأساسي المفاتيح ، جنبا إلى جنب مع أي بيانات معروفة دائمًا بأنها شائعة في كلا الجدولين.

نصيحة: اقرأ على SELECT ... باستثناء وحدد ... Intersect. إنها تعمل بسرعة مقلقة ، وهي فكرة لمقارنة جميع الأعمدة والصفوف بين مجموعتين للاختلافات (باستثناء) والمطابقات (المتقاطع). يمكنك استخدام هذا بسهولة إلى حد ما مع أي من الهيكلين ، وسيعمل مع الكود الحالي الخاص بك أيضًا (على الرغم من أنه قد يكون من الأمواج كتابة الاستعلام).

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