Skip to content

Instantly share code, notes, and snippets.

@imhashir
Last active April 26, 2020 11:47
Implementing Custom User/Permissions/Roles System with React, Serverless Lambda & MySQL
CREATE TABLE user (
id int NOT NULL AUTO_INCREMENT,
name varchar(128) NOT NULL,
email varchar(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE role (
id int NOT NULL AUTO_INCREMENT,
name varchar(128) NOT NULL,
description TEXT(2000) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE permission (
`id` int NOT NULL AUTO_INCREMENT,
`key` varchar(128) NOT NULL,
`name` varchar(128) NOT NULL,
`description` TEXT(2000) NOT NULL,
`role` varchar(16) DEFAULT 'super_admin',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE role_permissions (
role_id int NOT NULL,
permission_id int NOT NULL,
FOREIGN KEY (permission_id) REFERENCES permission(id) ON DELETE CASCADE,
FOREIGN KEY (role_id) REFERENCES role(id) ON DELETE CASCADE
);
CREATE TABLE user_role (
role_id int NOT NULL,
user_id int NOT NULL,
FOREIGN KEY (role_id) REFERENCES role(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment