Bạn không cần thuộc lý thuyết — bạn cần mô tả đúng
Nhiều người sợ thiết kế database vì nghĩ phải thuộc "chuẩn hoá 3NF", "phụ thuộc hàm". Sự thật: với Vibe Coding, bạn chỉ cần mô tả thế giới thực rõ ràng cho AI, nó sẽ lo phần chuẩn hoá kỹ thuật. Việc của bạn là tư duy đúng về thực thể và quan hệ.
3 câu hỏi thay cho mọi lý thuyết
Với mỗi tính năng, hỏi:
- Có những "thứ" (thực thể) nào? Danh từ trong mô tả = bảng. "User đăng bài viết, mỗi bài có nhiều bình luận" → 3 bảng: users, posts, comments.
- Chúng liên quan với nhau thế nào? Một-nhiều hay nhiều-nhiều?
- Một user có nhiều post → quan hệ một-nhiều (post chứa
user_id) - Một post có nhiều tag, một tag thuộc nhiều post → nhiều-nhiều (cần bảng trung gian
post_tags)
- Một user có nhiều post → quan hệ một-nhiều (post chứa
- Mỗi thứ cần lưu thông tin gì? = các cột.
Mô tả cho AI: công thức brief
"Thiết kế schema cho ứng dụng quản lý khoá học. Các thực thể: User (tên, email, vai trò), Course (tiêu đề, mô tả, thuộc về một community), Module (thuộc một course, có thứ tự), Lesson (thuộc một module, tiêu đề, nội dung, điểm XP). Quan hệ: community 1-nhiều course, course 1-nhiều module, module 1-nhiều lesson. Dùng Postgres. Đề xuất kiểu dữ liệu, khoá chính/ngoại, và index hợp lý. Giải thích lựa chọn."
AI trả về schema chuẩn hoá đúng — bạn chỉ cần đọc hiểu và duyệt.
Vài quy tắc vàng AI sẽ áp dụng (bạn nên hiểu)
| Nguyên tắc | Nghĩa là |
|---|---|
| Khoá chính (Primary Key) | Mỗi bảng có một cột định danh duy nhất, thường là id (UUID) |
| Khoá ngoại (Foreign Key) | Cột trỏ tới id bảng khác — tạo quan hệ |
| Đừng lặp dữ liệu | Tên user lưu một chỗ (bảng users), nơi khác trỏ tới bằng user_id |
| Nhiều-nhiều cần bảng nối | post_tags(post_id, tag_id) |
Sai lầm người mới hay mắc
- ❌ Nhồi mọi thứ vào một bảng khổng lồ (lưu cả tên user trong mỗi dòng post)
- ❌ Dùng kiểu dữ liệu sai (lưu ngày dạng text thay vì
timestamp) - ❌ Quên nghĩ tới quan hệ nhiều-nhiều
Cách tránh: mô tả rõ 3 câu hỏi trên rồi để AI thiết kế — và luôn hỏi nó "thiết kế này có điểm yếu nào khi dữ liệu lớn không?"
Bài tập
Chọn một ý tưởng app của bạn, viết brief theo công thức trên (thực thể + quan hệ + thông tin mỗi thực thể), đưa cho AI và yêu cầu nó vẽ sơ đồ quan hệ bằng mô tả. Lưu lại làm nền cho bài sau.
