アカウント名:
パスワード:
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり値は,有,無,NULL,の3値となるような設計&実装をしますつまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したりSQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまうと,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が混乱を招くのでしょう.(今回の場合は,日付の入力
今回のに関して言えば、「ワクチンは打った。」「だが、いつどこで打ったか記憶に御座いません。」なんて、いかにも反ワクチンが言いそうな、怪しげな発言だからじゃないか。
こういう場合に、とりあえず未接種扱いで処理するのは理解出来る。例えばワクチンパスポートの運用においては、書類に記述ミスや不正があれば不許可の方向で処理するんじゃないか。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
NULLは諸悪の根源 (スコア:5, すばらしい洞察)
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり
値は,有,無,NULL,の3値となるような設計&実装をします
つまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したり
SQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまう
と,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が
混乱を招くのでしょう.(今回の場合は,日付の入力
Re:NULLは諸悪の根源 (スコア:0)
今回のに関して言えば、
「ワクチンは打った。」
「だが、いつどこで打ったか記憶に御座いません。」
なんて、いかにも反ワクチンが言いそうな、
怪しげな発言だからじゃないか。
こういう場合に、とりあえず未接種扱いで処理するのは理解出来る。
例えばワクチンパスポートの運用においては、書類に記述ミスや
不正があれば不許可の方向で処理するんじゃないか。