应用权限和创建查询


apply permission and creating query

我正在编写一个有 4 个级别用户的 php 应用程序管理员,经理,组,客户端管理员将创建管理员,经理将创建组。除客户端外的所有客户端都可以创建客户端我有一个用户表,其中包含以下字段ID 主自动user_name瓦尔查尔独特经理标识组标识用户类型 int(4 种类型中的一种(

如果客户端不属于经理 managerid 下的任何经理或组,则组 ID 将为 0如果客户端属于一个组,则为其分配组ID如果组属于经理,则会为其分配一个经理 ID因此,一个经理可以有多个组,一个组可以有多个客户网站从登录页面开始,登录成功后根据用户类型主页将显示客户端列表。如果是单个客户端,它将仅显示其名称。如果是组,它将显示其组下的所有客户端以及由他们创建的个人如果是经理,则应在他们创建的所有组和个人下显示所有客户端。我正在寻找一种实现此工作流程的优化方法。我可以得到管理员列表(这将是全部(,组列表 - 每个人都有自己的组ID但我对如何创建经理列表有点困惑。我可以找到一个列表,其中有经理 ID 而没有个人的组 ID,并首先找出此管理器下的组,并获取具有这些组 ID 的所有客户端。但我认为这可能是使用 sql 查询实现 我需要帮助来构建这样的查询。如果可能的话,我想解决一个查询,这将使我得到这个列表。我正在使用代码点火器来构建这个网站。因此,如果对 CI 采用查询,它将非常出色。谢谢

      SELECT * 
      from 
          UserTable
      WHERE 
          groupid 
      in (select groupid from UserTable where managerid='id')

下面的代码可用于从活动记录中获取数据

      $this->db->select('u1.*');
      $this->db->from('UserTable u1');
      $this->db->join('UserTable u2', 'u1.groupid = u2.groupid');
      $this->db->where('u2.managerid', $id);
      $this->db->get();

这将生成以下查询

      SELECT `u1`.* 
      FROM (`UserTable` u1) 
      JOIN `UserTable` u2 ON `u1`.`groupid` = `u2`.`groupid` 
      WHERE `u2`.`managerid` = 1