Qual é a melhor maneira de armazenar 10 opções em um banco de dados MySQL?
-
21-09-2019 - |
Pergunta
Estou modificando o código da minha rede PHP para ter "funções de usuário" como o WordPress aqui está o meu plano até agora
0 = Usuário verificado por e -mail não registrado
1 = Email Registrado e Verificado
2 = moderador
3-9 = nada ainda
10 = admin
No meu código PHP, usarei uma matriz como essa que definirá o que um número de função faz.
$user_role['10']
Eu estava pensando em armazenar qual valor um usuário tem no meu mysql db, essa seria a melhor maneira de armazenar as 10 opções de função diferentes como enumeração ou existe uma maneira melhor ou mais rápida? Eu li que enum não é o mais rápido às vezes.
enum('0','1','2','3','4','5','6','7','8','9','10')
Solução
Eu acho INT
ou TINYINT
é suficiente para armazenar o nível do usuário (função). Além disso, você pode considerar multiplicar os números por 10, portanto, você terá um espaço para adicionar mais níveis no futuro.
Outras dicas
Use máscaras de bits para permissões / níveis de usuário.
Ver exemplo.