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