前回に引き続き、コードの運用についてお話します。
前回はコード間の連携についてお話しました。今回もコード利用の留意点として、コードの拡張についてお話しします。
コードの許容データ量
コードを作成する際に将来の利用状況を見据えて、桁数や表示などの仕様に余裕をもった設計をするのは以前お話しました。既存システムの利用状況から1年間の利用量を把握して、システムの寿命の2倍程度(許容データ量=年間利用量×年数×2)を目安にしておくのが理想です。
とはいえ、桁数が多いと入力がしづらかったり、帳票類や画面への記載がうまくできなかったりすることもあるので、4桁、8桁、12桁と区切りのいい桁数にすることも少なくありません。
結果として、あまり余裕のない許容量にしたために、想定外の利用が発生するとコードの許容量を超えることになります。特にコード内に有意コードを入れておくと、全体の桁数ではなく、その有意コードの桁数に左右されるため、意外と早い段階でコードが割当できなくなるといった事態に陥ります。
コード拡張(桁数増加)
そこで、検討することになるのがコード拡張です。今後のことも踏まえて、必要な拡張量を把握してから対策を検討していきます。対策方法はいくつかあります。
まずは、単純ですが桁数を増やす方法です。以前と違い、システム側の方で桁数制限をしていない限り、データベース側での変更は少ないです。ただし、入力規則や出力時の画面、帳票等に余裕がないとその点を設計しなおして、作り変える必要があるので、状況によっては変更の難易度が高くなります。
メリットとしては、コード規則をあまり触らなくていいことですが、画面や帳票の改修範囲が広いとデメリットが大きくなります。つまり、入力規則が少なく、画面や帳票の余白等の余裕があり、変更する範囲が少ない場合に検討する方法です。
コード拡張(アルファベット導入)
次に数字主体で設定しているコードにアルファベットを導入する方法です。こちらは桁数も変えないので画面、帳票の変更はありませんが、入力チェックの仕組みがあれば、変更が必要です。また、データベース側が項目を数値のみにしているとデータベース側の仕様を変える必要が出てきます。
そのため、英数字混在型のコードで数字部分だけだった桁を英字もOKにするといった場合に利用しましょう。この場合は入力ルールだけ変えればいいので、変更は容易です。特に数字だと10進法ですが、英数字だと36進法になります。(英大文字のみ)
例えば3桁で考えると数字だけだと0から999なのでコード数は最大1000ですが、英数字だと36×36×36=46656と大幅に増えます。若干の見づらさを我慢すればかなり有効な手段だと思います。費用を抑えたい場合の変更方法の最有力候補です。
コード拡張(複数項目組合せ)
次からシステムの改良というか複数の項目を組み合わせて対応する方法です。先ほどのアルファベット導入との組合せでアルファベットに特定の意味を持たせて、その補足を別項目で行うといった方法です。
例えば、旧コードをHから始まるコード、新コードをNから始まるコードといった感じで、分けて、コードの説明項目(商品名等)に補足説明を加えることで内容の理解をカバーするといった感じです。
また、記号等も入れてよい場合は1桁36文字がさらに増えるので桁を増やさずに意味を増やせますが、記号の意味を別項目で補足してあげる必要があります。×なら廃版商品、●なら後継商品といった感じです。
だだし、あまり多用するとコード仕様が崩れていくことになったり、意味を間違って捉えることもあったりするので、応急処置的な対応だと考えてもらった方がいいです。
いずれの場合も将来的な利用内容や量と改修予算に応じて検討をしますが、機能改修が多いようなら、全体的なシステム再構築時期かもしれないことも頭の隅に入れておいてください。