2014-06-04

http://anond.hatelabo.jp/20140604151658

横だけど、よく何かの検査データとかで N/A なんてのがあるけど、たとえば0以上(0もありうる)の検査値を保持するデータがあるとして、あの N/A を表すために NULL と表すか、0未満はあり得ないので決め打ちで-1とかするのとだったら、NULLのほうを私なら使うかな。検査はしたけれど、結果は測れずという意味を持たせるので、INSERTしないという手段は無し。列挙型の定義ができないDBなどで離散的な数値に意味を持たせると、仕様書を見なくてはならないのが、可読性にも影響。

計測通し番号 INT NOT NULL

結果 INT NULL

計測時刻 DATETIME NOT NULL

計測員番号 SMALLINT NOT NULL

もっとも、"検査成否 BOOLEAN" を別に設けるのが明示的で綺麗ですけどネ。

C#のこと以前の、NULL が永続データに向かないかどうかという議論に対して)

  • 横だけど NULLがオブジェクト(ないしはプリミティブ)なのかどうか?という言語仕様か。 いくつかの言語ではNULLはINTで0の事だから紛らわしいねぇ。 どうしたもんなんだろうね。

  • 俺も横だから、ココにトラバつけるわ。 C#触ったことないから知らなかったけど、bool?(null 許容型)てのがあるんだね。 MSDNみてみたけど http://msdn.microsoft.com/ja-jp/library/1t3y8s4s.aspx 数値...

    • http://msdn.microsoft.com/ja-jp/library/system.windows.controls.menuitem.ischecked(v=vs.90).aspx 例えば、WPFのIsCheckedプロパティは、基本的にnull許容のbool型で定義されてるんだよねえ。 これについてはどう思...

  • だから、その場合は CREATE TABLE 被験者( ID SERIAL NAME ) CREATE TABLE 検査( 検査ID 被験者ID ) CREATE TABLE 検査結果( 検査ID 検査結果 有効フラグ ) ってくらいにすればいいだろと、君...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん