我正在开发一个用户角色很少的门户网站。我一直想知道处理它们的最佳方法是什么。我已经为用户和客户创建了分离的表,但是客户端需要这些功能,因为用户和用户也可以轻松地成为客户端。
我也不想做很多关节,所以我想的是:
我将有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
我认为这可以很好地运作,但仍然想问你们是否认为这是一个好的和有效的解决方案。 感谢
答案 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