Как лучше всего хранить 10 вариантов в базе данных MySQL?

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

  •  21-09-2019
  •  | 
  •  

Вопрос

Я изменяю код своей сети PHP, чтобы в нем были «роли пользователей», такие как WordPress, вот мой план на данный момент.

0 = зарегистрированный пользователь без проверки электронной почты
1 = зарегистрированный и подтвержденный адрес электронной почты
2 = модератор
3-9 = пока ничего
10= администратор

В моем PHP-коде я буду использовать такой массив, который будет определять, что делает номер роли.

$user_role['10']

Я думал о сохранении значения, которое имеет пользователь, в моей базе данных MySQL. Будет ли это лучшим способом сохранить 10 различных параметров роли в виде перечисления или есть лучший или более быстрый способ?Я читал, что enum иногда не самый быстрый.

enum('0','1','2','3','4','5','6','7','8','9','10')
Это было полезно?

Решение

Наверное INT или TINYINT достаточно для хранения уровня пользователя (роли).Также вы можете рассмотреть возможность умножения чисел на 10, чтобы в будущем у вас было место для добавления новых уровней.

Другие советы

Используйте битовые маски для разрешений/уровней пользователя.

Видеть пример.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top