1. Yêu cầu chức năng
1.1 Authentication
-
Đăng ký tài khoản (Register)
-
Đăng nhập (Login)
-
Đăng xuất (Logout)
1.2 Quản lý User
-
Hiển thị danh sách User
-
Thêm User
-
Sửa User
-
Xóa User
-
Xem chi tiết User (optional)
1.3 Phân quyền
1.4 Session
-
Khi login thành công:
-
Lưu thông tin user vào Session
-
Nếu chưa login:
-
Truy cập
/users
-
Tự động redirect sang
/login
-
Nếu đã login:
-
Truy cập
/login hoặc /register
-
Tự động redirect sang
/users
2. Thiết kế Database
CREATE DATABASE user_management;
USE user_management;
-- =========================
-- TABLE: role
-- =========================
CREATE TABLE role (
id INT PRIMARY KEY AUTO_INCREMENT,
role_name VARCHAR(50) NOT NULL
);
-- =========================
-- INSERT ROLE
-- =========================
INSERT INTO role(role_name)
VALUES
('ADMIN'),
('USER');
-- =========================
-- TABLE: user
-- =========================
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
fullname VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
phone VARCHAR(20),
address VARCHAR(255),
status TINYINT DEFAULT 1,
role_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
CONSTRAINT fk_user_role
FOREIGN KEY (role_id)
REFERENCES role(id)
);
-- =========================
-- INSERT SAMPLE USERS
-- =========================
INSERT INTO user(
fullname,
email,
password,
phone,
address,
status,
role_id
)
VALUES
(
'Admin',
'admin@gmail.com',
'123456',
'0123456789',
'Ha Noi',
1,
1
),
(
'Nguyen Van A',
'user@gmail.com',
'123456',
'0987654321',
'Ho Chi Minh',
1,
2
);
-- =========================
-- TEST
-- =========================
SELECT * FROM role;
SELECT * FROM user;