ماذا تفعل مع قطعة واحدة من البيانات التي يجب أن تستمر؟

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

  •  23-08-2019
  •  | 
  •  

سؤال

لقد طلب مؤخرا لإضافة شيء لمسؤول موقع حيث يمكنه "ميزة" شيء ما.

لهذه المناقشة دعونا نقول إنها "مقالة مميزة".

بطبيعة الحال، لدينا بالفعل نموذج قاعدة بيانات من "المقالات" ولديها 20 أعمدة كما هو الحال لذلك أنا حقا لا أشعر بالانتفاخ بعد الآن مما هو عليه بالفعل.

خياراتي:

  1. تك الفرد "المميز" (أو int) وأدرك أنه سيتم عرض شيء واحد فقط في أي وقت معين

  2. قم بإنشاء نموذج جديد لعقد هذا وأي عنصر آخر عناصر ميزة قد يطفو على السطح.

  3. أخذه اقتراحاتك! ؛)

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

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

المحلول

إذا تم عرض مقالة واحدة فقط في كل مرة إنها مضيعة لإضافة عمود BOOL. يجب أن ترتفع مستوى وإضافة عمود للميزات. هل لديك جدول Site_settings؟

نصائح أخرى

من المحتمل أن أضيف فقط طاولة عمود بسيطة في الأساس مخزن ذات قيمة رئيسية. ثم أضف عمود جديد مع قيم مثل (featured_article_id, 45) أو أيا كان معرف متميز الأول هو.

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

يمكنك استخدام نموذج قابل للتوسيع مثل وجود جدول من السمات، ثم جدول ربط لتشكيل علاقة كثيرة متعددة بين المقالات والسمات. بهذه الطريقة، لا تتطلب هذه الأنواع من الميزات تعديل المخطط.

لديك نوع من جدول Global_Settings مع أعمدة Parameter_Name و Parameter_Value. وضع معرف المقالة المميز هنا.

للحصول على أشياء سريعة وقذرة مثل هذا، أحب أن تضمين نوع من إعدادات الإعدادات:

CREATE TABLE Settings (
    SettingName NVARCHAR(250) NOT NULL,
    SettingValue NVARCHAR(250)
)

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

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