-- 创建数据库
CREATE DATABASE permission_system;
USE permission_system;
-- 角色表
CREATE TABLE roles (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) UNIQUE NOT NULL,
description TEXT
);
-- 权限表
CREATE TABLE permissions (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) UNIQUE NOT NULL,
description TEXT
);
-- 角色权限关联表
CREATE TABLE role_permissions (
role_id INT,
permission_id INT,
PRIMARY KEY (role_id, permission_id),
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE CASCADE,
FOREIGN KEY (permission_id) REFERENCES permissions(id) ON DELETE CASCADE
);
-- 例如,插入权限:
INSERT INTO permissions (name, description) VALUES
('user_manage', '管理用户'),
('role_manage', '管理角色'),
('menu_manage', '管理菜单');
-- 插入角色:
INSERT INTO roles (name, description) VALUES ('admin', '系统管理员');
-- 关联角色和权限:
INSERT INTO role_permissions (role_id, permission_id)
SELECT r.id, p.id FROM roles r, permissions p
WHERE r.name = 'admin' AND p.name IN ('user_manage', 'role_manage', 'menu_manage');
权限管理:可能只是查看权限列表,因为权限通常由系统预先定义,分配权限给角色。