mysql表标准设计_mysql 标准权限表结构设计

本文分享了一个适用于大多数应用权限管理系统的MySQL表结构设计,包括用户管理、角色、权限节点、用户角色和角色权限等表格,旨在实现精确的权限控制。
摘要由CSDN通过智能技术生成

话不多说,直接入正题。

现在的互联网应用几乎都会有一个或者多个管理后台,那么如果正确,准确的分配不同角色权限呢,这就需要一个统一的权限分配管理系统,这个系统可以管理多个不同的应用后台,管理不同的人的不同系统下的不同角色权限,精准的控制到每一个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 '用户角色表';

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值