ما نوع البيانات المناسب لعمود أدوار المستخدمين في SQL؟

سهلقراءة دقيقةآخر تحديث 1 أكتوبر 2026

قواعد البيانات

الإجابة

لعمود قيمه من قائمة محددة مسبقًا، مثل الأدوار، يناسب النوع ENUM:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(100),
  role ENUM('admin', 'superAdmin', 'author', 'subscriber') DEFAULT 'subscriber'
);

قاعدة البيانات ترفض أي قيمة خارج القائمة، فتمنع أخطاء مثل 'Admin ' أو 'autor'.

متى لا أستخدم ENUM؟

إذا كانت الأدوار تتغير كثيرًا، أو تحتاج معلومات إضافية لكل دور (مثل الصلاحيات)، فالأفضل جدول أدوار منفصل يُربط بالمستخدم:

CREATE TABLE roles (id INT PRIMARY KEY, name VARCHAR(50));
-- users.role_id INT

اختبر فهمك

في جدول المستخدمين عمود للأدوار، وكل مستخدم له دور واحد من هذه القيم: admin، superAdmin، author، subscriber. ما نوع البيانات المناسب لهذا العمود؟