Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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 是否有一种正确的方法来管理数据库中不同类型的用户?_Mysql_Database - Fatal编程技术网

Mysql 是否有一种正确的方法来管理数据库中不同类型的用户?

Mysql 是否有一种正确的方法来管理数据库中不同类型的用户?,mysql,database,Mysql,Database,我刚刚第一次注册了一个用户。用户存储在MySQL数据库中,现在一切正常,但我知道这不是最好的方法。用户可以有不同的访问类型,目前有5种不同的访问类型,但将来可能会有更多 目前,users表的设置如下(我跳过了一些列): 因此,用户1可以访问访问级别1和4所允许的任何内容,而用户2只能访问级别3 在未来,可能会有10个甚至更多的访问权限,并且会有几十个用户 我知道这并不是一种正确的方法,因为每当我需要做一些小的更改时,我都必须不断添加访问列(以及更改一些代码) 我想我可以通过这样做使事情变得简单:

我刚刚第一次注册了一个用户。用户存储在MySQL数据库中,现在一切正常,但我知道这不是最好的方法。用户可以有不同的访问类型,目前有5种不同的访问类型,但将来可能会有更多

目前,users表的设置如下(我跳过了一些列):

因此,用户1可以访问访问级别1和4所允许的任何内容,而用户2只能访问级别3

在未来,可能会有10个甚至更多的访问权限,并且会有几十个用户

我知道这并不是一种正确的方法,因为每当我需要做一些小的更改时,我都必须不断添加访问列(以及更改一些代码)

我想我可以通过这样做使事情变得简单:

id     |username    |password    |accesses 
-------------------------------------------
1      |user1       |12345678    |1,4       
------------------------------------------
2      |user2       |12345679    |3       
user_id |access
-----------------
1       | 1 
-----------------
1       | 4 
-----------------
2       | 3     
但我也发现这有点难对付。例如,当我使用WHERE访问(如“%2%”)从表中选择时,我可能会获得第12个访问

第三种选择是有一个单独的表,看起来像这样:

id     |username    |password    |accesses 
-------------------------------------------
1      |user1       |12345678    |1,4       
------------------------------------------
2      |user2       |12345679    |3       
user_id |access
-----------------
1       | 1 
-----------------
1       | 4 
-----------------
2       | 3     
现在,我倾向于最后一种方法。但我觉得我可能忽略了什么。由于我对编码和数据库相当陌生,我希望在我允许用户注册之前,您能帮助我,这样我就可以避免后续问题


有没有正确的方法可以做到这一点?

我建议您在第三个选项之外再做一步。有3个表:一个用于用户,一个用于可担任的各种角色,另一个用于实际将用户链接到其角色

您的用户表将保持与现在类似的状态,只是没有所有的access\u X列

您的角色表:

和您的用户角色表,将两者链接在一起:

id | user | role
-----------------
1  | 1    | 2
-----------------
2  | 2    | 1
-----------------
3  | 3    | 1
-----------------
4  | 3    | 3
-----------------
5  | 3    | 4

您希望有一个“角色”表或类似的表,然后是一个将用户与“角色”关联的表。即使是一种技术,也有很多方法。我曾经想到过类似的事情,因为我记得有些网站有类似的事情。但问题总是在于我的角色不同。对我来说,一个角色是销售,另一个角色是库存,还有一个角色是电子商务。有些人可能需要访问两个或多个“角色”。您可能是说user_roles表可能包含同一用户的多行?是的,对于他们拥有的每个角色,单个用户将在user_roles表中出现一次。我会更新我的示例谢谢,@raptor尝试了一下,感觉不错:)