2012-08-14 33 views
5

Có điều gì sai với việc mặc định trường boolean thành nil thay vì false khi di chuyển ActiveRecord để sử dụng với Postgres?Di chuyển đường ray: có ổn không khi sử dụng 'nil' làm giá trị mặc định cho trường boolean?

Tôi thích cách nó cung cấp thêm một chút dữ liệu - dù trường đó đã được đánh dấu là đúng hay sai chưa.

+1

Phụ thuộc nếu lĩnh vực của bạn thực sự có ba trạng thái (đúng, sai, không xác định) hoặc chỉ hai (đúng, sai). –

+0

Tôi không thực sự phụ thuộc vào trạng thái "không xác định" thứ ba, chỉ là một phần dữ liệu thú vị mà tôi có thể kiểm tra. Cách tôi kiểm tra vals boolean không được ném ra bởi việc sử dụng nil. – bevanb

+3

Đừng làm điều đó nếu bạn không cần nó. Chính sách của tôi là tạo mọi thứ NOT NULL trừ khi tôi có lý do chính đáng để cho phép NULL, mọi thứ diễn ra dễ dàng hơn theo cách đó. –

Trả lời

7

không có gì để ngăn chặn bạn từ việc sử dụng con số không trên boolean là - nhưng cá nhân tôi thích các phép toán luận của tôi là đúng hay sai, tôi đã phát hiện ra rằng có bằng không có thể dẫn đến một số mã xấu xí

+1

Thực sự là mã xấu. Nếu bạn cần giá trị thứ ba, 'nil' /' unknown', thì bạn thực sự nên sử dụng một enum hoặc một máy trạng thái mà tôi nghĩ. Nếu không, bạn chỉ đang chiến đấu với mọi thứ và onus là bạn để đảm bảo bạn đang kiểm tra giá trị 'nil' ** ở khắp mọi nơi **. –

Các vấn đề liên quan