アカウント名:
パスワード:
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり値は,有,無,NULL,の3値となるような設計&実装をしますつまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したりSQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまうと,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が混乱を招くのでしょう.(今回の場合は,日付の入力
日本語使えとしか言いようが無い日本語で「有」「無」「不明」とか「有」「無」「その他」とかに区分して、プログラミング上の概念であるNULLなど排除したら良いのにそう出来ない理由があるのだろうか?(まあコーディング上、いろんなチェックのためにNULLがあちこちで出てくる・使わざるを得なくて混同が生じるというのは分かるものの....)
日本語を用いず単純な(?)2値を用いるのはミスを減らすためだったりシステムを軽くするためだったり集計を容易にするためだったりするので、それでもミスするような開発者が悪いという結論にたどり着く。親コメはそこまで考えて風刺的に書いていると思われる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
NULLは諸悪の根源 (スコア:5, すばらしい洞察)
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり
値は,有,無,NULL,の3値となるような設計&実装をします
つまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したり
SQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまう
と,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が
混乱を招くのでしょう.(今回の場合は,日付の入力
日本語使え (スコア:0)
日本語使えとしか言いようが無い
日本語で「有」「無」「不明」とか「有」「無」「その他」とかに区分して、プログラミング上の概念であるNULLなど排除したら良いのに
そう出来ない理由があるのだろうか?
(まあコーディング上、いろんなチェックのためにNULLがあちこちで出てくる・使わざるを得なくて混同が生じるというのは分かるものの....)
Re: 日本語使え (スコア:2)
日本語を用いず単純な(?)2値を用いるのはミスを減らすためだったりシステムを軽くするためだったり集計を容易にするためだったりするので、それでもミスするような開発者が悪いという結論にたどり着く。親コメはそこまで考えて風刺的に書いていると思われる。