ما هي أفضل طريقة لتخزين 10 خيارات في قاعدة بيانات MySQL؟

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

  •  21-09-2019
  •  | 
  •  

سؤال

أقوم بتعديل رمز شبكة PHP الخاصة بي للحصول على "أدوار المستخدم" مثل WordPress هنا هي خطتي حتى الآن

0 = مستخدم مسجل غير البريد الإلكتروني تم التحقق منه
1 = البريد الإلكتروني المرجل والتحقق
2 = المشرف
3-9 = لا شيء حتى الآن
10 = المسؤول

في رمز PHP الخاص بي ، سأستخدم صفيفًا كهذا سيحدد ما يفعله رقم الدور.

$user_role['10']

كنت أفكر في تخزين القيمة التي يتمتع بها المستخدم في MySQL DB ، هل ستكون هذه هي أفضل طريقة لتخزين خيارات الأدوار المختلفة العشرة كعنصر أم أن هناك طريقة أفضل أو أسرع؟ قرأت أن التعداد ليس الأسرع في بعض الأحيان.

enum('0','1','2','3','4','5','6','7','8','9','10')
هل كانت مفيدة؟

المحلول

اعتقد INT أو TINYINT يكفي لتخزين مستوى المستخدم (دور). كما يمكنك التفكير في ضرب الأرقام بمقدار 10 ، لذلك سيكون لديك مساحة لإضافة المزيد من المستويات في المستقبل.

نصائح أخرى

استخدام bitmasks للأذونات / مستويات المستخدم.

يرى مثال.

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