现在,我正在做一个OA系统,每个用户都可以分配给它权限,而且又有权限级别,然后分配给它某些权限才能做某些事情。请问:数据库怎么设计才是最合理的呢?我觉的做这个真的好麻烦的啊,权限、用户是多对多。而权限又有级别。当某个用户要做某些操作时,还得判断他有没有这个权限,这得判断到什么时候去啊?谁能教我一个很好的判断该用户有没有做这个操作的权限的方法或方案呢??请高手们多多指点。。

解决方案 »

  1.   

    用户>>角色>>权限,常规思路
      

  2.   

    登陆的时候要把它的角色也select出来才能控制的
    登陆的时候在数据库里把角色取出来然后进行判断然后进行跳转。
    若是多个角色就给出连接让他自己选择好了public   class   Admin_loginServlet   extends   HttpServlet  
    {protected   void   doPost(HttpServletRequest   request,HttpServletResponse   response)throws   ServletException,   IOException  
    {
    HttpSession   session=request.getSession();
    response.setContentType( "text/html;charset=GBK ");/*获得用户名及密码*/
    String   SName=request.getParameter( "SName ");
    String   Password=request.getParameter( "Password ");
    Connection   connection;
    if(SName==null)
    {
    response.sendRedirect( "../Adminerror.jsp?errmsg=用户名为空 ");
    System.out.println( "用户名为空 ");
    }AdminBean   AdminBean=new   AdminBean();
    if(!AdminBean.SelectSName(SName))
    {
    response.sendRedirect( "../Adminerror.jsp?errmsg=登陆出错,用户名不对 ");
    System.out.println( "登陆出错,用户名不对 ");
    }
    else
    {
    if(!(AdminBean.getPassword().trim()).equals(Password))
    {
    response.sendRedirect( "../Adminerror.jsp?errmsg=登陆出错,密码不对 ");
    System.out.println( "登陆出错,密码不对 ");
    }
    else
    {
    session.setAttribute( "username ",SName);
    response.sendRedirect( "../admin_index.jsp ");
    System.out.println( "管理登陆正常 ");
    return;
    }
    }
    AdminBean.closeConnection();}