ORM (Object-Relational Mapping) ánh xạ bảng DB ↔ object/class trong code, để thao tác dữ liệu bằng đối tượng thay vì viết SQL tay (vd Prisma, TypeORM, Hibernate, Drizzle).
Ưu:
- Viết nhanh, ít boilerplate, code gần với domain.
- An toàn hơn: query được tham số hóa sẵn → giảm SQL injection.
- Trừu tượng hóa DB, hỗ trợ migration, type-safety (với TS).
Nhược:
- Leaky abstraction: query phức tạp/tối ưu vẫn phải hiểu SQL bên dưới.
- Dễ dính N+1 query nếu không eager-load đúng.
- Query sinh ra có thể kém tối ưu; khó kiểm soát chi tiết; thêm một lớp học tập.
Chốt: ORM tốt cho phần lớn CRUD; phần truy vấn nặng/báo cáo nên hạ xuống raw SQL. Hiểu SQL vẫn là bắt buộc.