アカウント名:
パスワード:
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり値は,有,無,NULL,の3値となるような設計&実装をしますつまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したりSQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまうと,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が混乱を招くのでしょう.(今回の場合は,日付の入力
接種日不明を接種の有無と同じレベルで設計してる点が一番の根本原因だと思うけど、殿上人の厚生労働省様がアンケートの紙を御創り遊ばしたのが先にあって実装するn次受けにとっては不可侵の聖典化して変えられなかったのかなーとか妄想が膨らむそもそも接種の有無がnullなら接種日が確認できないではなく、接種自体を確認できなかったになるんじゃないかな?(重体で意思疎通が不能とか)この辺は殿上人のボタンの掛け違いから起こる本来は不必要な複雑さをどこで実装するのがマシかという話にしかならないけど
#あと顧客側の入力でboolean使うのは結構危ない(客の言うことはコロコロ変わる)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
NULLは諸悪の根源 (スコア:5, すばらしい洞察)
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり
値は,有,無,NULL,の3値となるような設計&実装をします
つまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したり
SQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまう
と,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が
混乱を招くのでしょう.(今回の場合は,日付の入力
Re:NULLは諸悪の根源 (スコア:0)
接種日不明を接種の有無と同じレベルで設計してる点が一番の根本原因だと思うけど、殿上人の厚生労働省様がアンケートの紙を御創り遊ばしたのが先にあって実装するn次受けにとっては不可侵の聖典化して変えられなかったのかなーとか妄想が膨らむ
そもそも接種の有無がnullなら接種日が確認できないではなく、接種自体を確認できなかったになるんじゃないかな?(重体で意思疎通が不能とか)
この辺は殿上人のボタンの掛け違いから起こる本来は不必要な複雑さをどこで実装するのがマシかという話にしかならないけど
#あと顧客側の入力でboolean使うのは結構危ない(客の言うことはコロコロ変わる)