帮我详细设计一个RBAC模型的MySQL数据库表,每个表中要包含一些示例数据。
时间: 2024-02-23 21:00:11 浏览: 18
好的,以下是详细的RBAC模型的MySQL数据库表设计,每个表中包含了一些示例数据:
1. 用户表(user)
```
CREATE TABLE user (
user_id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (user_id)
);
INSERT INTO user (username, password) VALUES
('admin', 'admin123'),
('user1', 'password1'),
('user2', 'password2');
```
2. 角色表(role)
```
CREATE TABLE role (
role_id INT(11) NOT NULL AUTO_INCREMENT,
role_name VARCHAR(50) NOT NULL,
PRIMARY KEY (role_id)
);
INSERT INTO role (role_name) VALUES
('admin'),
('user');
```
3. 权限表(permission)
```
CREATE TABLE permission (
permission_id INT(11) NOT NULL AUTO_INCREMENT,
permission_name VARCHAR(50) NOT NULL,
permission_description VARCHAR(255),
PRIMARY KEY (permission_id)
);
INSERT INTO permission (permission_name, permission_description) VALUES
('view_users', 'View list of users'),
('add_user', 'Add new user'),
('edit_user', 'Edit user information'),
('delete_user', 'Delete user');
```
4. 用户角色关系表(user_role)
```
CREATE TABLE user_role (
user_id INT(11) NOT NULL,
role_id INT(11) NOT NULL,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (user_id) REFERENCES user(user_id),
FOREIGN KEY (role_id) REFERENCES role(role_id)
);
INSERT INTO user_role (user_id, role_id) VALUES
(1, 1),
(2, 2),
(3, 2);
```
5. 角色权限关系表(role_permission)
```
CREATE TABLE role_permission (
role_id INT(11) NOT NULL,
permission_id INT(11) NOT NULL,
PRIMARY KEY (role_id, permission_id),
FOREIGN KEY (role_id) REFERENCES role(role_id),
FOREIGN KEY (permission_id) REFERENCES permission(permission_id)
);
INSERT INTO role_permission (role_id, permission_id) VALUES
(1, 1),
(1, 2),
(1, 3),
(1, 4),
(2, 1),
(2, 2),
(2, 3);
```
这个模型中,用户可以拥有多个角色,每个角色可以拥有多个权限。用户与角色之间是多对多关系,角色与权限之间也是多对多关系。除了创建表结构之外,示例数据还包括了用户、角色和权限的信息,以及用户角色关系和角色权限关系的数据。这些数据可以用来测试RBAC系统的正确性和有效性。