mysql数据库添加角色_用户系统 – MySQL数据库中的多个角色

所以我正在尝试创建一个基本的用户系统,在这个系统中我希望用户能够拥有多个角色.

比方说,我的角色如下:管理员,活动组织者,捐赠者

将这些多个角色分配给用户然后检查他们是否具有任何这些角色以显示某些权限的最佳方法是什么.

如果它只是每个人一个角色,那么这不会是一个问题因为我只是分配说管理员= 10,管理器= 5和捐赠者= 1然后做一个if语句来检查MySQL数据是否等于任何这三个数字.

我无法想象有一种方法可以添加一个MySQL字段并填写说“管理员,捐赠者”,因此该用户将拥有这两个角色?

是否只是我需要创建3个单独的字段并在这些字段中放置0或1并分别检查每个字段的情况?

解决方法:

使用多个表并加入它们:

User

--------------

id name

1 test

Role

--------------

id name

1 Donator

2 Organizer

3 Administrator

User_Role

--------------

id user_id role_id

1 1 1

2 1 3

SELECT * FROM User u

LEFT JOIN User_Role ur ON u.id = ur.user_id

LEFT JOIN Role r ON ur.role_id = r.id

WHERE r.name = "Administrator";

如果您知道自己只有3个角色且容易记住,则查询会更容易.

SELECT * FROM User u LEFT JOIN User_Role ur ON u.id = ur.user_id WHERE ur.role_id = 3;

标签:mysql

来源: https://codeday.me/bug/20190714/1455313.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值