Quelle est la meilleure façon de stocker 10 options dans une base de données MySQL?

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

  •  21-09-2019
  •  | 
  •  

Question

Je suis en train de modifier mon code de réseau PHP pour avoir des « rôles utilisateur » comme ici est mon plan wordpress jusqu'à présent

0 = utilisateur non email vérifié registred
1 = Registed et vérifiées email
2 = modérateur
3-9 = rien encore
10 = admin

Dans mon code PHP je vais utiliser un tableau comme celui-ci qui établira ce numéro de rôle fait.

$user_role['10']

Je pensais à stocker la valeur d'un utilisateur qui a dans ma base de données mysql, serait-ce la meilleure façon de stocker les 10 différentes options de rôle en tant que ENUM ou est-il une meilleure façon ou d'une façon plus rapide? J'ai lu que ENUM est pas le plus rapide parfois.

enum('0','1','2','3','4','5','6','7','8','9','10')
Était-ce utile?

La solution

Je suppose que INT ou TINYINT est suffisant au niveau utilisateur du magasin (rôle). vous pouvez également envisager multiplting les numéros de 10, de sorte que vous aurez un espace pour ajouter d'autres niveaux dans l'avenir.

Autres conseils

Utilisez bitmasks pour les autorisations / niveaux d'utilisateurs.

Voir exemple .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top