アカウント名:
パスワード:
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり値は,有,無,NULL,の3値となるような設計&実装をしますつまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したりSQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまうと,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が混乱を招くのでしょう.(今回の場合は,日付の入力
いや、テストしろよとしか…テストデータ入れて集計値が想定通りかチェックすれば即確認できる項目でしょ
>いや、テストしろよとしか…テストデータ入れて集計値が想定通りかチェックすれば即確認できる項目でしょ
記載してない、という状態を想定できてなかったのでそういうテストデータを作ってなかった、という問題だと思いますけど
# 想定していない問題のテストデータをどうやって作る気?
問題外やん。政府の公式の統計がそんなんて。
テストケースが事象を網羅出来てない、それはテスト出来てないのと同じですよ
有無の二値で済むと誤認するのが問題になるという話に対し、テストできてる・できてないの二値で済まそうとする議論を持ってきちゃうのが素敵です
NULLABLEな項目ならばNULLが入るだろ。想定出来ないわけないじゃん。
NULLABLEかどうかは設計書に書いてないとわかんないよ。NULLABLEって書いてあったとしても、NULLが何を示すかも設計書に書いてないとわかんないよ。
想定してないデータが来た時のテストケースってやらないの?想定していないデータが来た場合、エラーで止めるなり、それなりの処理を行ってシステムにダメージを与えないようにするもんだと思ってたんだが・・・#そういった想定外のテストデータを嬉々として作る私はある意味性格のゆがんでいるんだろうな
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
NULLは諸悪の根源 (スコア:5, すばらしい洞察)
よくあるバグですね.
データベース(SQLやCSV)で「ワクチン接種の有無」という項目をつくり
値は,有,無,NULL,の3値となるような設計&実装をします
つまり,不明の場合はNULL,確定した場合は有or無, です.
これを2値と勘違いして,「有」と「それ以外(つまりNULL or 無)」と集計したり
SQLで SELECT * FROM hogehoge WHERE "ワクチン接種の有無" == TRUE などとクエリを書いてしまう
と,今回のようなバグが発生します.
ワクチン接種の有無,という一見2値のような項目名に対して,データは3値になるという「矛盾」が
混乱を招くのでしょう.(今回の場合は,日付の入力
Re: (スコア:0)
いや、テストしろよとしか…テストデータ入れて集計値が想定通りかチェックすれば即確認できる項目でしょ
Re:NULLは諸悪の根源 (スコア:1)
>いや、テストしろよとしか…テストデータ入れて集計値が想定通りかチェックすれば即確認できる項目でしょ
記載してない、という状態を想定できてなかったのでそういうテストデータを作ってなかった、という問題だと思いますけど
# 想定していない問題のテストデータをどうやって作る気?
Re: (スコア:0)
問題外やん。
政府の公式の統計がそんなんて。
Re: (スコア:0)
テストケースが事象を網羅出来てない、それはテスト出来てないのと同じですよ
Re:NULLは諸悪の根源 (スコア:2, 興味深い)
有無の二値で済むと誤認するのが問題になるという話に対し、
テストできてる・できてないの二値で済まそうとする議論を持ってきちゃうのが素敵です
Re: (スコア:0)
NULLABLEな項目ならばNULLが入るだろ。
想定出来ないわけないじゃん。
Re: (スコア:0)
NULLABLEかどうかは設計書に書いてないとわかんないよ。
NULLABLEって書いてあったとしても、NULLが何を示すかも設計書に書いてないとわかんないよ。
Re: (スコア:0)
想定してないデータが来た時のテストケースってやらないの?
想定していないデータが来た場合、エラーで止めるなり、それなりの処理を行ってシステムにダメージを与えないようにするもんだと思ってたんだが・・・
#そういった想定外のテストデータを嬉々として作る私はある意味性格のゆがんでいるんだろうな
Re: (スコア:0)
だっただけだろ
それなりの処理じゃダメってこったよ