SE/プログラマーであれば、覚えておきたい「入力チェック」についてまとめました。
システム開発の長い人になればなるほど、当たり前のように「必須チェック」とか「相関チェック」などの単語を連発してきます。
この記事では、必須チェック?相関チェック?外字チェック?など、入力チェックの種類について理解しきれていない人向けに解説します。
入力チェックと一言に言っても大きく7種類ほど覚えておけばOKなので、その内容と処理については正確に理解しておきましょう。
それでは解説を始めます。
入力チェックがなぜ必要か
具体的な解説に入る前に、何故入力チェックが必要とされるのかを整理しておきたいと思います。
結論から言うと入力チェックは不正な入力を許さないために存在しているというのが大原則です。
システム観点からは、日付項目に金額を入れてしまうと最悪、プログラムのDUMP(停止)につながります。データベースの整合性にも大きく影響します。
業務観点からは、単に日付であっても「過去日付」のみ「未来日付」のみ、という制限が存在する場合もあります。ユーザが業務への理解が浅い場合(そうでない場合も)、その制限に反した入力をしてしまうと業務がうまく回りません。
入力チェックをうまく設計することで、システム品質・ユーザビリティが向上します。
ただし、例えば「日付を入力すべき」項目にただの「必須入力チェック」だけを実装していた場合、金額の入力でもチェックは通ってしまいます。
不正な入力を許さないという大前提に立って、不正の種類に応じた入力チェックの実装が不可欠です。
入力チェックの種類をマスターし、使い分けができるようにしておきましょう。
入力チェック
入力チェックは、ユーザビリティを考慮し、画面の上から下・左から右の項目順でチェックすることが基本です。
入力チェックには大きく分けて10種類のチェックが存在します。
※多少プログラム言語によって呼び方が異なる場合もあります。その点ご了承ください。
1.必須チェック(必須入力チェック)
最も基本形です。
項目に値が入力されているかどうかのチェックです。必須チェックには、「ある項目を選択したら関連項目も必須入力とする」条件付き必須チェックがあります。
例)転記日付が入力されていること
2.項目長チェック(文字数チェック)
入力された文字数が指定された文字数であること、もしくは指定された文字数以内であることをチェックします。
例1)備考欄は30文字以内であること
例2)契約番号は5桁で入力されていること
3.属性チェック
属性とは、文字/数字/日付などのデータ型のことです。
入力された項目が、指定されたデータ型と一致していることをチェックします。
ちなみに、同じ文字といっても「ひらがな」なのか「カタカナ」なのか、全角なのか半角なのか、細かく指定することも可能です。
例)日付項目に日付以外の値が入力されていないこと
4.相関チェック
相関チェックは、複数の項目に入力された値の妥当性のチェックです。
項目Aの入力値と、項目Bの入力値と、項目Cの入力値と、・・・に妥当性があるかどうかを制限するチェックです。
例)転記日付が登録日付より前の日付ではないこと
5.存在チェック
入力値に関連するデータがシステム(データベース)に存在しているかどうかをチェックします。
マスタの値から選択する場合などに用います。
例)勘定コードマスタに存在する勘定コードが入力されていること
6.外字チェック
外字とは、システムに存在しない文字のことです。
つまり、最新のパソコンからであれば入力できるものの、システムには登録されていない文字のことです。「㉚」とか、特殊な文字をよく使う場合には必須です。
外字チェックとは、入力された項目に外字が指定されていないことをチェックすることです。
このチェックをしない場合、プログラム停止か、うまくいっても文字化けします。
例)備考欄にS-JIS以外の文字が入力されていないこと
7.権限チェック
入力された値によるデータへのアクセス権限をチェックします。
例えば、人事システムにおいて給料を確認する際に「自分以外を指定していないか」をチェックするなどというのが代表的な使い方です。
例)指定された会社コードの参照権限があること