データの入力規則

データを入力させる画面で、どのくらい入力内容の形式を強制できるかは、それに対応したプログラムを書くことで調整できます。

ごく当たり前な例では、データを必ず入力させる、という強制。名前とか、メールアドレスとか、そういう部分に内容を書き入れずに提出ボタンを押しても、ここが足りませんよというメッセージを出して再入力をさせる、なんていうのを、日常的にとてもよく見ます。

また、内容を書き入れるにしても、数字であるべきところにアルファベットが入っているようなとき、あとで処理エラーを起こすのを防ぐため「弾かれる(入力を拒否される)」ようになっていることがあります。年齢を聞いているのに、AとかBなんて文字が入っていては困りますもんね。これの発展で、たとえ数字でも、常識的な値を入れてくれないとだめ、という制限もあり得ます。年齢が150歳を超えていたら、普通そんなはずがないでしょう、という感じにエラーを起こして受け付けないようにもできます。

生年月日を入力させるときに、あらかじめ準備された選択肢からしか入力させませんよ、という強制方法もありますね。マウスで触るとドロップダウンするようになっていて、1900年から2024年現在までから選ぶしかない、という具合です。同様に、月も1から12まで、日も1から31までしかそもそも選択肢が準備されていないでしょう。ただし、ここまでやっても、存在しない「11月31日」みたいな入力ができちゃうことがあるかもしれません。小の月のときは30までしか選択できない、とか、うるう年以外のときは2月28日まで、そうでなければ2月29日まで… などと、ここらへんを凝り始めるとキリがなくなってきますが、でも、ここが正確であることが業務上重要なことだったら、ちゃんと完全に対応すべきですね。

数字であるべきところに「全角文字の数字」が入力されていたらどうするの、というのは、システムによって対応方針はまちまちです。「全角」と呼ばれる種類の、普通より幅広な英数字の文字があるんですが、これは内部的には普通の数字ではないのです。「全角はだめですよ」というエラーメッセージを出して入力させ直すのもいいですが、全角から半角への変換はルールに従ってやれますから、わざわざエラーで突き返さず、自動的に半角の数字に直して扱ってあげる、ということも可能です。こういう気遣い機能のためには、ちょっぴりプログラムの記述量が増えますが。

商品番号を入力させる、というようなときは、それが本当にデータベース上に登録された番号なのかを調べて、なかったら「そんなのはないですよ」というエラーメッセージを出すようなのも可能です。この入力で商品の在庫を確保させるような仕組みだったら、この時点で、商品の在庫数まで調べて、「その数では、商品の在庫が足りませんよ」なんてエラーを出すこともあります。

ほかにも、メールアドレスを入力してほしいのに、アットマーク「@」がどこにもない、とか、明らかにメールアドレスに見えないようなものはダメ、というルールを強制することも可能です。こういう要望がエスカレート?してくると、「ちゃんと存在するアドレスで、メールがちゃんと届くメールアドレスだけが入力可能になっていてほしい」とか、そんなのどうやって確かめればいいの、といったレベルの入力規則も出てくるかもしれません。そういうのもある程度可能ではあるのですが、ここまでくると「入力規則」という範疇に入る話かどうかは微妙です。

データを入力するのが、自社の誰かなのか、それともお客さんなのか、とパターンは色々ですが、何にしろ、ちゃんとした品質の、矛盾がないデータを入力してもらわなければあとから困る可能性があるなら、データの入力にどういう規則を設けるかというのは、あらかじめ真剣に検討しておくべきところです。

あと、入力規則には、「危険なデータ入力を防ぐ」という要素もあります。「SQLインジェクション」とかそんな言葉を聞いたことがある方がいらっしゃるかもしれませんが、詳細はともかく、ちょっとイレギュラーな入力をわざと行うことによって、システム内で想定外の動作をさせてしまうことを狙う、悪いテクニックが色々存在するのです。用心深く入力を処理すれば比較的簡単に対処できるのですが、急いで仕組みをこしらえているうちに、こういう危険をチェックし忘れてまう、なんていうことも世の中では時々ありますので、なにしろ油断できないところです。