Thứ Hai, 9 tháng 1, 2012

Tại sao nên sử dụng kiểu ENUM khi thiết kế Database?

Trước đây khi thiết kế database tôi thường sử dụng kiểu INT để cho các trường dữ liệu. Ví dụ kiểu boolean là 0 = No, 1 = Yes. Sau đó khi code định nghĩa các constant tương ứng:
const YES = 1;
const NO = 0;

Hoặc
const STATUS_ACTIVE = 1;
const STATUS_PENDING =2;
const STATUS_APPROVED = 3;

Tuy nhiên kiểu thiết kế này rất bất lợi cho việc bảo trì hệ thống. Bởi vì khi đọc trực tiếp trên database, các giá trị 0,1,2,3... không có ý nghĩa. Buộc phải đọc code để hiểu các giá trị trên là gì. Điều này đã ngốn không ít thời gian của tôi.

Khi đã có kinh nghiệm hơn, tôi chuyển sang sử dụng kiểu ENUM lúc này Yes sẽ là 'Yes', No sẽ là 'No'. Nhờ vậy, tôi chỉ cần đọc dữ liệu là hiểu được ý nghĩa của nó. Giảm đi một thao tác vô ích.

Không có nhận xét nào:

Đăng nhận xét