Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql数据库中存储10个选项的最佳方式是什么?_Mysql_Enums_User Roles - Fatal编程技术网

在mysql数据库中存储10个选项的最佳方式是什么?

在mysql数据库中存储10个选项的最佳方式是什么?,mysql,enums,user-roles,Mysql,Enums,User Roles,我正在修改我的PHP网络代码,使其具有像wordpress这样的“用户角色”,这是我目前的计划 0=已注册的非电子邮件验证用户 1=已注册和验证的电子邮件 2=主持人 3-9=还没有什么 10=管理员 在我的PHP代码中,我将使用这样一个数组来设置角色号的作用 $user_role['10'] 我正在考虑在mysql数据库中存储用户拥有的值,这是将10个不同角色选项存储为枚举的最佳方法还是有更好或更快的方法?我读到enum有时不是最快的。 enum('0','1','2','3','4','5

我正在修改我的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,这样您将有空间在将来添加更多的级别。

< P>我猜<代码> int <代码>或<代码> TINYINT 存储用户级别(角色)就足够了。此外,你可以考虑把数字乘以10,这样你就有空间在将来增加更多的水平。

小心地扩展这个答案。看起来有点复杂,你认为这会更快吗?另外,如果我在mysql中使用了enum,我会不会在mysql中不使用enum?@jasondavis否您只会在db中存储权限的十进制表示形式,通过我答案中更改的链接阅读,它解释了在该答案上扩展一点真的很好?这看起来有点复杂,您认为这会更快吗?另外,如果我使用了,我会不会在mysql中不使用enum?@jasondavis不,你只会在db中存储权限的十进制表示形式,通过我答案中更改的链接阅读,这很好地解释了这一点。我同意这一点。如果您只需要一个数字来表示用户权限,那么只需使用整数列即可。如果使用ENUM,那么添加新级别的唯一方法就是更改数据库架构。另外,ENUM是特定于mysql的非标准的,一般来说,除非您真的需要特定于供应商的功能,否则您应该避免使用它们。我同意这一点。如果您只需要一个数字来表示用户权限,那么只需使用整数列即可。如果使用ENUM,那么添加新级别的唯一方法就是更改数据库架构。此外,ENUM是特定于mysql的非标准的,一般来说,除非您真的需要特定于供应商的功能,否则您应该避免使用它们。