0

新しく導入されたチェックボックスの値を MySQL データベース内に保存する方法について少し議論しました。チェックボックスは「オン」または「オフ」にすることができますが、まったく表示されない場合があります。私の考えは、単にステータスを BOOL NOT NULL フィールドに保存することです。次に、0 または 1 のいずれかになります。その後、同僚が NULL を含めたいと言ったので、選択が行われていないことがわかります。

ただし、BOOL フィールドには NULL を含めるべきではないと思います。あなたはそれを望んでいますが、真か偽か、不明ではありません。「不明」の余分な状態を本当に保存したい場合は、フィールドを未選択 = 0、選択済み = 1、不明 = 2 の TINYINT にします。これは ENUM フィールドでもかまいません。

NULL が可能な BOOL フィールドについてどう思いますか?

4

3 に答える 3

1

NULLが可能なBOOLではなく、単に状態列挙型です。

0: not selected 
1: selected 
2: unknown/hidden 

列挙型は、アプリケーションの動作にチェックボックス値の「非表示/不明」状態が含まれている場合、mysqlがそれを反映する必要があるため、実行しようとしていることを達成するための良い方法です。将来。

于 2012-06-13T15:29:48.743 に答える
1

個人的には、BOOL フィールドに NULL を使用しても問題はないと思います。私に関する限り、それは他のタイプと同様であり、正当に不明な状態を割り当てることができます. しかし、定義上「オン」または「オフ」であるため、BOOL を NULL にすることができない場合、このロジックはたとえば Ints に拡張できると主張します。Int は数値でなければならないため、NULL にすることはできません。

ここでの他の回答に基づいて、私は明らかに少数派です。自分の立ち位置を考え直す必要がありそうです。

于 2012-06-13T15:32:28.873 に答える
0

booleanフィールドには2つを超える値を含めることはできません。ブール値自体は、OnまたはOff、TrueまたはFalseのように「または」条件を意味します。

于 2012-06-13T15:29:33.563 に答える