您的位置:首页 > 文旅 > 美景 > 石家庄外贸建站公司_手机ppt制作_如何进行搜索引擎营销_营销效果分析怎么写

石家庄外贸建站公司_手机ppt制作_如何进行搜索引擎营销_营销效果分析怎么写

2024/10/12 6:25:45 来源:https://blog.csdn.net/xuezhiwu001/article/details/142863032  浏览:    关键词:石家庄外贸建站公司_手机ppt制作_如何进行搜索引擎营销_营销效果分析怎么写
石家庄外贸建站公司_手机ppt制作_如何进行搜索引擎营销_营销效果分析怎么写

概述

实践的是一套企业内部使用后台OA管理系统,对这套系统设计的RBAC(Role-Based Access Control,基于角色的访问控制),RBAC 方案旨在通过将后台用户与角色进行关联,再将角色与权限进行关联,实现对系统资源的灵活、高效和安全的访问控制。

这种方式可以大大简化权限管理的复杂性,提高系统的可维护性和安全性。

关键概念

在看方案设计之前,有几个关键概念需要理解:

  • 后台用户(admin):台管理系统(OA)的使用者,为了区分C端用户,把这里的概念定义为后台用户。
  • 角色(Role):一组特定的权限集合,代表了特定的工作职责或功能,同一个用户可以分配多个角色,角色不同,职能也不同。
  • 权限(Permission):对系统资源的具体操作许可,如查看、编辑、删除、添加等,权限可以针对不同的功能模块或数据对象进行设置,也就是Node节点。
  • 组织架构(Department):所有的后台管理系统(OA)都是有组织架构,也就是部门,所有的部门负责人对所属子部门进行管理。

工作原理

在这里插入图片描述

1、首先,在系统中定义各种角色,比如并为每个角色分配相应的权限,根据职能角色有销售、客服、财务、工程师等角色。
2、给角色分配对应的权限,比如销售角色有添加客户、查看自己或自己部门销售的客户。
3、将用户分配到特定的角色,比如创建stark张宇 这个用户时,分配给stark张宇后端开发工程师的角色,一个用户也可以同时分为多个角色,角色和用户是多对多的关系。
4、当后台用户登录系统后,系统获取当前用户的角色,如果是多角色,在登录时进行选择即可。
5、Node节点仅对有权限的角色进行可见和对应操作。

注意事项

1、权限的分配应遵循最小权限原则,即只给予用户完成其工作所需的最小权限。
2、定期审查用户的权限,确保权限的合理性和安全性。
3、在系统升级或功能调整时,及时检查和更新权限设置,以防止出现权限漏洞。

数据库设计

RBAC的数据库设计最主要的记录就是以下5个数据表实现,重点叙述一下用户角色关系表 admin_roles,把用户stark张宇设置成为多个角色,是一个多对多的关系,在操作数据时使用事务操作,来保证数据的原子性和一致性,系统中设置先设置菜单,生成菜单的节点,对角色直接操作,不作用在用户上,用角色分离后台用户和权限。

1、后台用户表 admin

CREATE TABLE `admin` (`admin_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',`admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '真实姓名',`account` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '账号:即手机号',`idcard` varchar(18) NOT NULL DEFAULT '',`birth` int(8) NOT NULL DEFAULT '0' COMMENT '生日',`gender` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '性别 1男2女',`password` char(32) NOT NULL DEFAULT '' COMMENT '密码',`department_id` int(10) NOT NULL DEFAULT '0' COMMENT '部门ID',`current_role_id` tinyint(1) NOT NULL COMMENT '当前角色',`master_uid` tinyint(3) unsigned NOT NULL COMMENT '是否负责人 0-否',`status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1正常 2禁用 3删除',`position` varchar(128) NOT NULL DEFAULT '' COMMENT '职务',`public_openid` char(28) NOT NULL DEFAULT '' COMMENT '公众号openid',`organ_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '所属机构主键ID',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间',`create_admin_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建后台用户ID',`create_admin_name` varchar(255) NOT NULL DEFAULT '' COMMENT '创建后台用户名称',`update_time` int(10) NOT NULL DEFAULT '0' COMMENT '更新时间',`update_admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '最后更新后台用户ID',`update_admin_name` varchar(255) NOT NULL DEFAULT '' COMMENT '最后更新后台用户姓名',PRIMARY KEY (`admin_id`) USING BTREE,KEY `account` (`account`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='后台用户表';

2、角色表 role

CREATE TABLE `role` (`role_id` int(11) NOT NULL AUTO_INCREMENT,`role_name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名称',`organ_id` tinyint(11) NOT NULL DEFAULT '0' COMMENT '机构ID',`status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2删除',`show` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '是否显示 1:是 2:否',`create_time` int(11) NOT NULL DEFAULT '0',`create_admin_id` tinyint(1) NOT NULL DEFAULT '1' COMMENT '创建人ID',`create_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人姓名',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后更新时间',`update_admin_id` tinyint(1) NOT NULL DEFAULT '1' COMMENT '更新人ID',`update_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '更新人姓名',PRIMARY KEY (`role_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COMMENT='角色表';

3、用户角色关系表 admin_roles

CREATE TABLE `admin_roles` (`id` int(11) NOT NULL AUTO_INCREMENT,`admin_id` int(11) NOT NULL DEFAULT '0' COMMENT '用户ID',`role_id` int(11) NOT NULL DEFAULT '0' COMMENT '角色ID',`organ_id` int(11) unsigned NOT NULL DEFAULT '0',`status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='后台用户角色关系表';

4、菜单表

CREATE TABLE `menu` (`node_id` int(11) NOT NULL AUTO_INCREMENT,`node_name` varchar(64) NOT NULL DEFAULT '' COMMENT '菜单名称',`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级ID',`node_route` varchar(600) NOT NULL DEFAULT '' COMMENT '路由Url',`node_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单类型 1菜单 2按钮',`node_order` smallint(6) NOT NULL DEFAULT '0' COMMENT '顺序',`node_status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2删除',`node_show` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '是否显示 1:是 2:否',`icon_url` varchar(500) NOT NULL DEFAULT '' COMMENT '图标url',`organ_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '机构主键ID',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`create_admin_id` tinyint(1) NOT NULL DEFAULT '1' COMMENT '创建人ID',`create_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人姓名',`update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后更新时间',`update_admin_id` tinyint(1) NOT NULL DEFAULT '1' COMMENT '更新人ID',`update_admin_name` varchar(64) NOT NULL DEFAULT '' COMMENT '更新人姓名',PRIMARY KEY (`node_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';

5、角色菜单关系表

CREATE TABLE `role_menus` (`id` int(11) NOT NULL AUTO_INCREMENT,`role_id` int(11) DEFAULT '0' COMMENT '角色ID',`node_id` int(11) DEFAULT '0' COMMENT '菜单ID',`status` tinyint(2) DEFAULT '1' COMMENT '状态 1正常 2删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关系表';

最后

所有的方案设计都是循序渐进,先完成再完美,有和我同道的朋友可以私信我,大家一起学习一起加油。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com