Thiết kế database là một trong những kỹ năng quan trọng nhất của lập trình backend, nhưng đây cũng là nơi dễ tạo ra technical debt nhiều nhất. Dưới đây là những sai lầm phổ biến nhất khi thiết kế DB mà nhiều dự án gặp phải.
Nhiều người sử dụng VARCHAR(255) cho mọi trường hoặc dùng string trong ORM mà không hiểu DB mapping phía dưới. Sai type gây:
Lãng phí bộ nhớ
Chậm query
Không index tối ưu
Ví dụ:
Trường boolean nhưng lại dùng TINYINT(1) không chuẩn
Trường JSON lưu string thuần → khó parse
Ngày tháng dùng varchar → không thể query theo range
Gợi ý: Luôn ưu tiên đúng kiểu dữ liệu: INT, DATETIME, JSON, BOOLEAN, ENUM…
Nhiều bảng chứa data trùng lặp, ví dụ:
Table Orders có cột CustomerName, CustomerAddress → violate 3NF
Danh mục (category) bị duplicate do không tách bảng
Hệ quả:
Dữ liệu khó maintain
Chỉnh sửa phải sửa nhiều nơi
Dễ gây mismatch data
Không có index → query chậm, CPU tăng cao.
Index quá nhiều → insert/update chậm.
Những sai lầm phổ biến:
Index text dài
Index nhưng không dùng vì sai thứ tự (index composite)
Quên index foreign key
Tip:
Index theo tần suất truy vấn, không phải theo số lượng trường.
Nhiều hệ thống dùng deleted_at nhưng không:
Thêm điều kiện ... WHERE deleted_at IS NULL
Tạo index cho deleted_at
Xử lý trường hợp restore dữ liệu
Sửa trực tiếp trên DB mà không generate migration
Không test migration rollback
Deploy nhiều service nhưng migration chạy sai thứ tự
Hậu quả: Lỗi production khó phục hồi.
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE