Kiểu ENUM phù hợp cho cột rating cố định giá trị (1-5 sao), đảm bảo tính toàn vẹn dữ liệu.
Ví dụ
Tạo bảng cột UserRating ENUM:
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
UserRating ENUM('1','2','3','4','5')
);
Query OK, 0 rows affected (0.54 sec)Chèn dữ liệu:
mysql> insert into DemoTable(UserRating) values('5');
mysql> insert into DemoTable(UserRating) values('3');
mysql> insert into DemoTable(UserRating) values('1');
mysql> insert into DemoTable(UserRating) values('3');
mysql> insert into DemoTable(UserRating) values('4');Kết quả:
+----+------------+ | Id | UserRating | +----+------------+ | 1 | 5 | | 2 | 3 | | 3 | 1 | | 4 | 3 | | 5 | 4 | +----+------------+
Ưu điểm ENUM:
- Ràng buộc dữ liệu tại database level (chỉ chấp nhận 1-5)
- Tiết kiệm lưu trữ (1-2 byte tùy số lượng giá trị)
- Sắp xếp theo thứ tự định nghĩa trong ENUM
Nhược điểm: Thay đổi danh sách giá trị cần ALTER TABLE (khóa bảng). Cân nhắc bảng lookup (rating_values) nếu cần linh hoạt.