المفاتيح الأجنبية غير الفريدة كمعيار لقاعدة البيانات

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

سؤال

الخلفية: اليوم ، نشأت مشكلة أثناء استخدام خدمات الإبلاغ عن خادم SQL. يبدو أن المعلمات المنسدلة SSRS في عارض التقرير لا تسمح لك بالإشارة إلى خيار (فارغ) حتى تتمكن من رؤية تقرير حيث تكون هذه المعلمة فارغة. في الأساس ، الجدول A هو جدول يشير بشكل لا بذال الجدول B ؛ نظرًا لأن التقرير يستخدم الجدول B لملء المنسدلة ، فلا توجد خام لإظهاره كخيار ، وبالتالي لا يمكنك تحديد كل A the A الذي يحتوي على Null B.

يأتي سؤالي الحقيقي من رد فعل الركبة المحتمل على المشكلة أعلاه من خلال نوع الإدارة الذي أجيب عليه. عندما أوضحت ما يجري ، أصدرت تفويضًا جديدًا مفاده أن جميع المفاتيح الأجنبية يجب أن تكون غير خالية وأن كل كيان يجب أن يكون له سجل "افتراضي" ، وهو معيار جديد يبدو أنه يحل هذه المشكلة في أداة إعداد التقارير. في الأساس ، إذا كان لديك جدول CAT ، فلا يجب أن يكون Cat.Oner Null ، ولكن يجب أن يشير بدلاً من ذلك إلى سجل افتراضي في جدول الشخص ، وهو الشخص "الافتراضي".

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

هل يمكن لأي شخص أن يثقل ما قد يساعده هذا أو يؤذيه؟

أي شخص لديه هذا كمعيار قاعدة بيانات؟ أي قضايا ، التنمية أو غير ذلك ، يجب أن أكون في الاعتبار؟

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

المحلول

الحقول الفارغة تعني لا قيمة.

لذلك من المنطقي وصحيح ملء العلاقة المفقودة مع الفرق.

لقد رأيت ، في بعض الأحيان ، في بعض الحالات الخاصة ، استخدام أ السجل الافتراضي كما هو موضح في السؤال. لكن تلك كانت "حالة خاصة" واستخدمت "في بعض الأحيان".

IMHO إجبار هذه السياسة كمعيار لتطوير DB هو مجرد غبي وغير صحيح وربما خطير. لن أتعامل مع جميع المضاعفات الممكنة الناشئة عن مثل هذا التصميم: أعتقد أنك تتخيل بالفعل ما يعنيه ذلك.

نصائح أخرى

بينما ، إذا كانت القطة مملوكة للملاحظة ، فيجب أن يكون لها شخص كمالك ، إذا تم التخلي عنه ، فلا ينبغي أن يكون في هذا الجدول.

ومع ذلك ، إذا كانت القطة هي any_cat (مع/بدون مالك) ، فلا ينبغي أن ترتبط تلك القط المهجور بأي شخص.

بالنسبة لي ، فإن إنشاء سجل وهمية أو افتراضي في جدول الشخص من أجل التقارير لا معنى له (لمديرك) لكنني لا أشعر بأنه "على صواب" بشأن هذا.

لا أستطيع أن أقدم لك الكثير ، فقط بلدي 2 سنت.

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