Phân tích và Thiết kế Cơ sở dữ liệu: Hệ thống Quiz Real-time
· 17 min read
Bước 1: Xác định Thực thể (Entities) và Thuộc tính (Attributes)
Ẩn dụ đời sống: Bước này giống như liệt kê "nhân vật" trong một bộ phim và thông tin cá nhân của từng người. Mỗi "nhân vật" là một thực thể, mỗi "thông tin" là một thuộc tính.
Dựa trên phân tích yêu cầu nghiệp vụ, hệ thống Quiz Real-time cần quản lý 5 thực thể chính:
1.1. Thực thể: Users (Người dùng)
Nghiệp vụ: Người dùng đăng ký tài khoản để tạo và quản lý quiz (vai trò Host/Giáo viên).
| Thuộc tính | Mô tả | Khóa | Bắt buộc |
|---|---|---|---|
id | Mã định danh duy nhất | 🔑 PK | ✅ |
email | Email đăng nhập (unique) | UNIQUE | ✅ |
password_hash | Mật khẩu đã mã hóa | — | ✅ |
name | Tên hiển thị | — | ✅ |
created_at | Thời gian tạo tài khoản | — | ✅ (auto) |
1.2. Thực thể: Quizzes (Bộ câu hỏi)
Nghiệp vụ: Mỗi quiz do một User tạo ra, chứa nhiều câu hỏi và có cấu hình thời gian trả lời.
| Thuộc tính | Mô tả | Khóa | Bắt buộc |
|---|---|---|---|
id | Mã định danh duy nhất | 🔑 PK | ✅ |
title | Tiêu đề bộ quiz | — | ✅ |
description | Mô tả ngắn về bộ quiz | — | ❌ |
host_id | Mã người tạo | 🔗 FK → Users | ✅ |
time_per_question | Thời gian trả lời mỗi câu (giây) | — | ✅ (default: 20) |
is_published | Trạng thái xuất bản | — | ✅ (default: false) |
created_at | Thời gian tạo | — | ✅ (auto) |
updated_at | Thời gian cập nhật cuối | — | ✅ (auto) |