处理用户角色的有效方法

时间:2012-08-26 03:11:29

标签: mysql database theory roles

我正在开发一个用户角色很少的门户网站。我一直想知道处理它们的最佳方法是什么。我已经为用户和客户创建了分离的表,但是客户端需要这些功能,因为用户和用户也可以轻松地成为客户端。

我也不想做很多关节,所以我想的是:

我将有4个不同的用户角色(至少目前为止),如下所示:

user
client
reviewer
admin

我将为每个角色分配“id”。同时我将使用这些角色在mysql中保留表。它将类似于:

1 - admin
2 - reviewer
3 - client
4 - user

此表仅在创建用户时使用,以获取用户“权限”的代码。所以我们假设有一个人是用户和评论者。他的角色是24岁。

login  password  email role     created
----------------------------------------------------------
guy    password  guy@gmail.com  24 2012-12-08 23:12:30

我认为这可以很好地运作,但仍然想问你们是否认为这是一个好的和有效的解决方案。 感谢

2 个答案:

答案 0 :(得分:1)

执行此操作的另一种方法是拥有多个USER_ROLE表,其中您的示例人员将拥有以下内容。

login role
guy   2
guy   4

我通常更喜欢这种跟踪角色的方法。在这种情况下对这个表的连接应该是快速且无痛的,特别是如果你转向使用user_id而不是登录,并且适当地索引。

答案 1 :(得分:0)

您所定义的是基于角色的访问控制系统(我建议在此查找资源)。 RBAC系统将为用户提供单独的表,为角色提供另一个表。用户和角色之间将存在多对多的关系。此外,您还将权限表连接到另一个多对多关系中的角色。附加的图像表示如何实现此系统:RBAC SYSTEM IN MYSQL

之前曾问过类似的问题:How to design a hierarchical role based access control system