前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >组织架构设计、角色与权限设计的一些思考

组织架构设计、角色与权限设计的一些思考

作者头像
房东的狗丶
发布2023-02-17 15:22:52
3510
发布2023-02-17 15:22:52
举报
文章被收录于专栏:友人a的笔记丶友人a的笔记丶

组织架构

1.需求点

  1. 查询某个组织下面的所有用户(包括所有下级组织)
  2. 查询某个组织下面的所有下级组织
  3. 查询用户所在的组织
  4. 获取整个组织结构,方便生成树形数据结构

2.组织表

相关的必要字段如下:

  • id,主键ID
  • pid,父级组织id
  • tree,当前节点的所有父级组织,假设当前组织的父级id为2,2的父级id为1,则tree的值为:1,2

3.用户表

相关的必要字段如下:

  • department,所在的组织id。

4.相关SQL

4.1 查询用户所在的组织
代码语言:javascript
复制
SELECT
	* 
FROM
	`department` `a`,
	INNER JOIN user `b` ON `a`.`id` = `b`.`department`
WHERE
	b.id = "用户ID";
4.2 获取指定组织下的所有组织
代码语言:javascript
复制
SELECT
	*
FROM
	`department` 
WHERE
	FIND_IN_SET( "组织ID", `tree` )
4.3 查询组织下面的所有用户
代码语言:javascript
复制
SELECT
	* 
FROM
	`user` `a`
	INNER JOIN `department` `b` ON `a`.`department` = `b`.`id` 
WHERE
	( a.department IN (( SELECT id FROM `department` WHERE ( FIND_IN_SET( "组织ID", `tree` ) OR id = "组织ID" ) )) )

角色与权限

通常情况下有两种方式可以控制用户权限,一种是通过用户角色(Role)来控制权限,另一种是通过更细致的权限(Operation)来直接指定某个用户可以进行哪些行为。

1.角色

不同的角色可以访问的功能集合(可访问的页面)不同,创建角色时设置角色可访问的页面。

前后端分离的模式下,将角色的可访问路由传递给前端,由前端动态加载路由。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 组织架构
    • 1.需求点
      • 2.组织表
        • 3.用户表
          • 4.相关SQL
            • 4.1 查询用户所在的组织
            • 4.2 获取指定组织下的所有组织
            • 4.3 查询组织下面的所有用户
        • 角色与权限
          • 1.角色
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档