打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
mysql 标准权限表结构设计

话不多说,直接入正题。

现在的互联网应用几乎都会有一个或者多个管理后台,那么如果正确,准确的分配不同角色权限呢,这就需要一个统一的权限分配管理系统,这个系统可以管理多个不同的应用后台,管理不同的人的不同系统下的不同角色权限,精准的控制到每一个action,而不是粗略的control。

下面是我最近在做的一个权限系统所设计的表结构。希望对大家有所帮助。

主要思想:

1)用户管理表

2)角色表

3)权限节点表

4)用户和角色表

5)角色和权限表

下面的表结构能够适合绝大多数的应用权限管理系统。

# 节点CREATE TABLE `tblRbacNode` (`node_id` int(10) unsigned NOT NULL AUTO_INCREMENT,`node_name` varchar(100) DEFAULT '' COMMENT '节点action',`node_url` varchar(100) DEFAULT '' COMMENT '节点 url',`title` varchar(100) DEFAULT '' COMMENT '节点名称',`deleted` tinyint(4) DEFAULT 0 COMMENT '0展示 1隐藏',`sort` int(10) unsigned DEFAULT 0 COMMENT '排序',`parent_id` int(10) unsigned DEFAULT 0 COMMENT '父节点',`level` tinyint(4) unsigned DEFAULT 0 COMMENT '1应用 2控制器 3action',`app_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '应用',`app_name` varchar(100) DEFAULT '' COMMENT '应用名称',`is_tab` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1 侧边栏 0 页面节点',`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',`operator_uid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '操作人uid',`operator` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人',`ext_data` varchar(5000) NOT NULL DEFAULT '' COMMENT '扩展属性json',PRIMARY KEY (`node_id`),KEY `level` (`level`),KEY `parent_id` (`parent_id`),KEY `node_name` (`node_name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '节点表';CREATE TABLE `tblRbacRole` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`role_id` int(10) unsigned COMMENT '角色id 自10000起',`role_name` varchar(1000) NOT NULL COMMENT '角色名',`parent_id` int(10) unsigned DEFAULT 0 COMMENT '父节点',`deleted` tinyint(4) DEFAULT 0 COMMENT '删除',`app_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '应用',`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',`operator_uid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '操作人uid',`operator` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人',`ext_data` varchar(5000) NOT NULL DEFAULT '' COMMENT '扩展属性json',PRIMARY KEY (`id`),KEY `role_id` (`role_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '角色群组表';CREATE TABLE `tblRbacAccess` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`role_id` int(10) unsigned NOT NULL COMMENT '角色id',`node_id` int(10) unsigned NOT NULL COMMENT '节点id',`deleted` tinyint(4) DEFAULT 0 COMMENT '删除',`app_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '应用',`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',`operator_uid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '操作人uid',`operator` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人',`ext_data` varchar(5000) NOT NULL DEFAULT '' COMMENT '扩展属性json',PRIMARY KEY (`id`),KEY `role_id` (`role_id`),KEY `node_id` (`node_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '权限表';CREATE TABLE `tblRbacUser` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`uid` bigint(20) NOT NULL DEFAULT 0 COMMENT '用户id',`deleted` tinyint(4) DEFAULT 0 COMMENT '删除',`app_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '应用',`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',`operator_uid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '操作人uid',`operator` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人',`ext_data` varchar(5000) NOT NULL DEFAULT '' COMMENT '扩展属性json',PRIMARY KEY (`id`),KEY `uid` (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '用户表';CREATE TABLE `tblRbacRoleUser` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`role_id` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '角色id',`uid` bigint(20) NOT NULL DEFAULT 0 COMMENT '用户id',`deleted` tinyint(4) DEFAULT 0 COMMENT '删除',`app_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '应用,`create_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',`update_time` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',`operator_uid` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '操作人uid',`operator` varchar(100) NOT NULL DEFAULT '' COMMENT '操作人',`ext_data` varchar(5000) NOT NULL DEFAULT '' COMMENT '扩展属性json',PRIMARY KEY (`id`),KEY `role_id` (`role_id`),KEY `uid` (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '用户角色表';
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ecshop订单表结构ecs_order_info说明
RBAC 基于角色的权限访问控制
linux下mysql主从复制(第二篇读写分离) mycat 中间件
EasyPytest测试平台开发日志之系统设计
原来还可以这样创建表
[MySQL] mysql 5.5和 5.6 timestamp default 默认值CURRENT_TIMESTAMP问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服