Sequelize cung cấp nhiều data types tương ứng với các kiểu dữ liệu trong SQL databases (MySQL, PostgreSQL, SQLite, MSSQL…). Việc chọn đúng data type giúp:
Tối ưu performance: Dữ liệu được lưu trữ hiệu quả hơn Tiết kiệm storage: Không lãng phí dung lượng Đảm bảo tính chính xác: Validate data đúng chuẩn Tương thích database: Dễ migrate giữa các DB engines 1. String Types (Chuỗi ký tự)
Chuỗi có độ dài giới hạn (VARCHAR trong SQL).
Ứng dụng thực tế:
Best Practices:
Luôn đặt giới hạn độ dài hợp lý TEXT
Chuỗi không giới hạn độ dài (TEXT trong SQL).
Ứng dụng thực tế:
Khi nào dùng TEXT vs STRING:
STRING: Dữ liệu ngắn, cần index, search nhanh (title, name, email) TEXT: Dữ liệu dài, không cần index (content, description, comments) 2. Number Types (Số)
INTEGER
Số nguyên.
Ứng dụng thực tế:
Best Practices:
Dùng UNSIGNED cho số không âm (id, count, quantity) TINYINT: Cho enum số nhỏ (0-255) SMALLINT: Cho số vừa (population nhỏ) INTEGER: Mặc định cho hầu hết trường hợp BIGINT: Cho số rất lớn (timestamp milliseconds, big analytics) FLOAT & DOUBLE
Số thập phân.
⚠️ KHÔNG nên dùng FLOAT/DOUBLE cho tiền tệ!
Ứng dụng hợp lý:
DECIMAL
Số thập phân chính xác tuyệt đối.
Ứng dụng thực tế (QUAN TRỌNG cho e-commerce):
Best Practices cho tiền tệ:
3. Date & Time Types
DATE
Date và time.
Ứng dụng thực tế:
Working with dates:
4. Boolean Type
Ứng dụng thực tế:
5. JSON Type
Lưu trữ dữ liệu JSON (PostgreSQL, MySQL 5.7+, SQLite 3.9+).
Ứng dụng thực tế:
User Settings/Preferences:
⚠️ Lưu ý khi dùng JSON:
Khó query/index hơn so với columns riêng Không validate structure tự động Tốt cho dữ liệu flexible, ít query PostgreSQL JSONB tốt hơn JSON (có index, nhanh hơn) 6. ENUM Type
Giá trị từ danh sách cố định.
Ứng dụng thực tế:
ENUM vs STRING cho status:
Lợi ích ENUM:
Database-level validation Tối ưu storage (lưu số thay vì string) 7. UUID Type
Unique identifier.
Ứng dụng thực tế:
UUID vs Auto-increment ID:
Khi nào dùng UUID:
API public (không muốn lộ số lượng users/posts) File uploads (tránh trùng tên) Tổng hợp Best Practices
1. Chọn đúng type cho từng trường hợp
2. Template cho các models phổ biến
User Model:
Product Model:
Order Model:
Đây là tổng hợp đầy đủ về các Data Types trong Sequelize với ứng dụng thực tế trong production. Chọn đúng type giúp database hiệu quả, dễ maintain và scale!