أفضل الممارسات - أن البيانات الوصفية والوظيفية تحديد البيانات اختلط?

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

  •  03-07-2019
  •  | 
  •  

سؤال

النظر في قضية بسيطة المادة الإخبارية تطبيق ويب الذي يحتوي DB الجدول عمود "الحالة" التي يمكن الوصول إليها عن طريق زر الراديو مجموعة من:

مركز [x] نشر [ ] مشروع [ ] أرشيف

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

هل هذه الممارسة ؟ في حين أن هذا هو بسيط جدا القضية أكبر من الحالات قد تكشف العيوب مع مثل هذه الممارسة (أو لا...).

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

المحلول

تتعلق الحالات الوظيفية بالسلوك، ولا تحتاج إلى تصميمها في قاعدة بياناتك.إذا كان منطق عملك يهتم فقط بـ "عرض" المقالات ذات الحالة "منشورة" - فلا يوجد سبب لمضاعفة تعقيد بياناتك باستخدام عمود العرض.

عند النقطة التي تقرر فيها احتياجات منطق عملك بيانات إضافية لاتخاذ القرار بشأن إظهار أو إخفاء مقالة (ربما علامة IsApproved)، يمكنك تخزين تلك البيانات.

بالنظر إلى الأمر من زاوية مختلفة - إذا أردت إضافة عمود آخر من "إظهار"، فما الذي ستفعله المقالة ذات الحالة "مسودة" و"عرض" = 1؟وفقًا لقواعد عملك، فهذه حالة غير صالحة.

نصائح أخرى

في هذه الحالة أود أن أقول أن هذا هو وظائف مناسبة.

لقد رأينا جميعا WTF في وسائل الإعلام حيث شخص ما عن طريق الخطأ ضرب عرض[x] ومشروع[x] في نفس الوقت.

على ما هو عليه الآن ، فمن المستحيل أن يظهر بالصدفة مشروع.هذا هو المهم في الصحف كما للصحفيين سيئة السمعة الاشياء مثل:

فلان الفلاني ، ستاكوفيرفلوو قال: "- - - لا أستطيع أن أتذكر ما الذي قبيحة و*cker قال - التحقق من الشريط وملء في وقت لاحق"

والتي ربما لا يجب أن تكون مطبوعة.

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