数据库表权限通用设计,经典

设计图:

 

 

表结构

#mysql
/*
  用户表
*/
CREATE TABLE `asset_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_name` varchar(32) NOT NULL COMMENT '用户名',
  `account` varchar(100) DEFAULT NULL COMMENT '账号',
  `branch_id` varchar(32) NOT NULL COMMENT '管辖机构',
  `is_able` int(1) NOT NULL DEFAULT '1' COMMENT '是否可用,1可用,0不可用',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` bigint(20) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `company_code` varchar(20) DEFAULT NULL COMMENT '公司编码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='用户';



/*
  角色表
*/
CREATE TABLE `asset_role` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `role_name` varchar(32) NOT NULL COMMENT '角色名称',
  `branch_id` varchar(32) NOT NULL COMMENT '组织机构id',
  `role_type_id` bigint(20) DEFAULT NULL COMMENT '角色类型id',
  `is_del` int(1) NOT NULL DEFAULT '1' COMMENT '是否可删,1可删除,0不可删除',
  `is_able` int(1) NOT NULL DEFAULT '1' COMMENT '是够可用,1可用,0不可用',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NOT NULL COMMENT '创建人',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_by` bigint(20) DEFAULT NULL COMMENT '更新人',
  `udpate_time` datetime DEFAULT NULL COMMENT '更新时间',
  `is_default` int(1) DEFAULT '0' COMMENT '是否默认角色',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8 COMMENT='角色';



/*
  角色类型表
*/
CREATE TABLE `asset_role_type` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `role_type_name` varchar(32) NOT NULL COMMENT '类型名称',
  `parent_id` bigint(20) DEFAULT NULL COMMENT '父类型id',
  `weight` bigint(10) DEFAULT NULL COMMENT '权重,角色类型等级',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='角色对象';




/*
  用户角色关系表
*/
CREATE TABLE `asset_user_role` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` bigint(20) NOT NULL COMMENT '用户id',
  `role_id` bigint(20) NOT NULL COMMENT '角色类型id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1298 DEFAULT CHARSET=utf8 COMMENT='用户角色关系';



/*
  权限表
*/
CREATE TABLE `asset_privilege` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `privilege_code` varchar(100) DEFAULT NULL COMMENT '权限code',
  `privilege_name` varchar(32) NOT NULL COMMENT '权限名称',
  `privilege_icon` varchar(100) DEFAULT NULL COMMENT '权限icon',
  `privilege_url` varchar(32) DEFAULT NULL COMMENT '权限url',
  `parent_id` bigint(20) DEFAULT NULL COMMENT '父级id',
  `is_able` int(1) NOT NULL DEFAULT '1' COMMENT '是否可用,1可用,0不可用',
  `is_del` int(1) NOT NULL DEFAULT '1' COMMENT '是否可删,1可删,0不可删',
  `is_leaf` int(1) NOT NULL DEFAULT '0' COMMENT '是否叶子节点,1是,0不是',
  `sort` int(4) DEFAULT '1' COMMENT '排序',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注',
  `create_by` bigint(20) NOT NULL COMMENT '创建人',
  `create_time` datetime NOT NULL COMMENT '创建日期',
  `update_by` bigint(20) DEFAULT NULL COMMENT '更新人',
  `update_time` datetime DEFAULT NULL COMMENT '更新日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=179 DEFAULT CHARSET=utf8 COMMENT='权限';


/*
  角色权限表
*/
CREATE TABLE `asset_role_privilege` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `role_id` bigint(20) NOT NULL COMMENT '角色id',
  `privilege_id` bigint(20) NOT NULL COMMENT '权限id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4691 DEFAULT CHARSET=utf8 COMMENT='角色权限关系';

 


版权声明:本文为nameIsHG原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。