数据库有这么几张表user(userid),group(groupid),permission(permissionid),user_group(userid,groupid),group_permission(groupid,permissionid)
user与group是多对多关系,group与permission也是多对多关系。
本人新手,现在想些一个方法,传入的是userid和permissionid,返回布尔型,判断用户是否有权限。因为要通过group去查permission,是通过for循环呢?还是直接查询呢,直接查询的话该怎么去查?希望各位给点思路。

解决方案 »

  1.   

    通过关联查询 ,登录后把用户userid放进来 ,不是可以查到他的权限了 ?
      

  2.   

    通过sql语句的关联查询出结果,不必循环,那样太麻烦了
      

  3.   

    感谢楼上!
    select * from user_group,group_permission where user_group.userid='100'
    这样写OK不?
      

  4.   

    漏了
    select * from user_group,group_permission where user_group.userid='100' and group_permission.permission='1'
    这样行不行呢?
      

  5.   

    select distinct p.* from  permission p inner join group_permission gp on p.permissionid = gp.permissionid inner join user_group ug on ug.groupid = gp.groupid where ug.userid = '100' ;这样应该可以得到 用户id为 '100'的用户的权限
      

  6.   

    只需要 userid就可以啦 ,通过关联查询 ,既可以实现得到用户所拥有的权限