هل من الجيد استخدام الجداول الطبيعية مع وجهات النظر المفهرسة غير الطبيعية؟

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

سؤال

أنا أقوم بتصنيع تطبيق جديد في الوقت الحالي ، مع نسبة القراءة العالية: الكتابة. في صاحب العمل الحالي لدينا الكثير من البيانات غير الطبيعية على الجداول لدينا لأسباب الأداء. هل من الأفضل أن يكون لديك طاولات 3NF بالكامل ثم استخدام وجهات النظر المفهرسة للقيام بكل عملية إزالة العقل؟ هل يجب أن أقوم بتشغيل استفسارات مقابل الجداول أو وجهات النظر؟

مثال على بعض الأشياء التي يهمني هي مجاميع الأعمدة الجداول للأطفال (على سبيل المثال تخزين عدد نشر المستخدم في مكان ما).

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

المحلول

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

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

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

نصائح أخرى

إذا كنت ستستخدم طرق العرض لتقديم بيانات غير طبيعية للمستخدم (وكنت تستخدم SQL Server) ، فيجب عليك التحقق من شرط Schemabinding. إذا كانت طريقة العرض Schemabound ، فيمكنك فهرسة ذلك ، وسيتم تحديث الفهرس عند تحديث الجداول الأساسية. وبهذه الطريقة ، إذا تم إعداد الفهارس بشكل جيد ، فيمكن للأشخاص الذين يبحثون عن بيانات أن يختاروا فعليًا من الفهرس ، لذلك لن يحتاج إلى إعادة بناء العرض المعقد لكل استعلام ، لكن المستخدمين سيظلون يرون محدثًا التاريخ عندما تتغير الجداول الأساسية.

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