Tôi đã đọc qua một số hướng dẫn về tối ưu hóa cơ sở dữ liệu và thực hành tốt nhất và rất nhiều trong số họ đề xuất không sử dụng cờ boolean ở tất cả trong lược đồ DB (ví dụ: http://forge.mysql.com/wiki/Top10SQLPerformanceTips). Tuy nhiên, họ không bao giờ cung cấp bất kỳ lý do gì là tại sao điều này là xấu. Nó là một vấn đề về peformance? khó lập chỉ mục hay truy vấn đúng cách?Tại sao sử dụng cờ boolean trong cơ sở dữ liệu lại xấu? Và những gì nên được sử dụng thay thế?
Hơn nữa, nếu cờ boolean là xấu, bạn nên sử dụng những gì để lưu trữ các giá trị boolean trong cơ sở dữ liệu? Là tốt hơn để lưu trữ cờ boolean như một số nguyên và sử dụng một bitmask? Điều này có vẻ như nó sẽ ít có thể đọc được.
Đừng bao giờ coi trọng bất cứ ai sẽ chỉ nói với bạn "Không sử dụng cờ boolean" hoặc "Sử dụng chỉ mục" mà không có lý do gì. – cherouvim
Có vẻ như họ không cung cấp lý do cho * mọi thứ * trên trang đó. – animuson
OK, để công bằng đây là những ghi chú từ một sự kiện/trại. Tôi vẫn không biết tại sao loại trường đúng/sai là xấu. – cherouvim