2012-08-14 10 views
5

PostgresでActiveRecordを移行する場合、ブール値フィールドをfalseではなくnilにデフォルト設定すると問題はありますか?Railsの移行:ブール値フィールドのデフォルト値として 'nil'を使用しても問題ありませんか?

私は、このフィールドがまだtrueまたはfalseとしてマークされているかどうかにかかわらず、少しの余分なデータを与える方法が好きです。

+1

は異なり、いくつかの醜いコードにつながることがわかってきました3つの状態(真、偽、不明)または2つ(真、偽)。 –

+0

私は実際には3番目の「不明な」状態には依存しません。ちょうど興味深いデータをチェックすることができます。ブール値をチェックする方法は、ゼロを使用することによってスローされません。 – bevanb

+3

必要がない場合は実行しないでください。私の方針は、NULLを許可する正当な理由がない限り、すべてをNULLにしないことです。 –

答えて

7

がブール値にnilを使用してからあなたを止めるものは何もありません - しかし、私は個人的に私のブール値がtrueまたはfalseになりたい、私はnilを持つことは、あなたのフィールドが実際に持っている場合

+1

本当に醜いコードです。 3番目の 'nil' /' unknown'という値が必要な場合は、実際にenumや状態マシンを使うべきです。さもなければ、あなたは物事と戦っているだけで、あなたはどこにいても「無」の価値**をチェックしていることを保証するためにあなたに責任があります。 –

関連する問題