質問: 本を読んで勉強中です。 型について質問させてください。 ``` 10代 20代 30代 ``` | id | hoge1 | | --- | --- | | 1 | 1 | | 2 | 2 | | 3 | 1 | | hoge1_id | name | | --- | --- | | 1 | 10代 | | 2 | 20代 | | 3 | 30代 | というデータベース構成の時 ラジオボックスが未選択の時も `NULL`をインサートするのは避けるべきと記載がありました。 また、上記同様セレクトボックスの場合も value="0"を準備してあげて`NULL`を避ける。 ``` 10代 20代 30代 ``` ### 質問まとめ ・ラジオボックスが未選択の場合はhoge1のカラムには `0`を入れるようにするのが良いでしょうか? ・セレクトボックスも`NULL`を避けるために0を入れるべきでしょうか? ・その他のテキストボックス等は`NULL`でも大丈夫ですか?
回答: > > ラジオボックスが未選択の時も > > NULLをインサートするのは避けるべきと記載がありました。 > > > これが**どのような意味合い**なのかは気になりますが、少なくとも、今回のような「年齢」欄でしたら、**全員網羅できるように**項目を用意するのが適当です。「10代」「20代」「30代」だけとなると、10歳未満や40歳以上はどうしようもなくなります(もちろん、「70歳以上」のようにある程度のところで打ち切るのも問題はないですが)。 未選択の場合の対応ですが、**どうしたいか**によります。 * セレクトボックスに`required`をかけて、そもそも未選択では先に進ませない * DB側も含めて「非公開」のような項目を入れて、デフォルトではそれを選択しておく