コード運用(その5)

前回に引き続き、コードの運用についてお話します。

前回はコード利用での留意点をお話しました。今回もコード利用の留意点として、コード間連携についてお話しします。

コード間の関係性

コード設計時にコードの新旧の話や材料コードと商品コードのような親子関係の話を少ししましたが、親子関係ではないものの作成の優先順位があるものがあります。

例えば、新しい部署やチームができた際に、部署コードを作成するのはもちろんですが、その上位にあたる部門コードとの関係性を意識する必要があります。

一般的には部署コードの上位の桁に部門コードを埋め込むことで所属をわかりやすくする場合もありますが、プロジェクトチームのような部門移動がある場合は、わざと部門コード部分をどの部門も利用していないコードにしておいたほうが望ましいです。

このような内容はコード設計には書きづらいので、運用基準か該当する運用手順に注意事項として記載しておくとよいです。

また、新人や中途採用で新しく社員が増えるときに、社員コードを作成しますが、新人と中途採用でコード付与ルールが異なる場合があれば、こちらも運用側に記載しておく必要があります。

ついでにいうと新人登録は、ほかにも住所に付随する市区町村コードなどが必要になります。全国分を一括で入れていればいいですが、都度追加している場合や登録のタイミングで市町村合併の見直しなどを行うのであれば、運用手順の中に記載しておくと漏れがなくて安心です。

リレーションマップ(関係図)

このような形で、明確な親子関係がなくても近しいコードはそれがわかるような管理図があると望ましいです。その一つがリレーションマップです。

これはテーブル同士の関係を親子関係で対応付けたもので、先ほどの部門コードと部署コードだと部門が親、部署が子なので、部門がない部署は原則存在しません。(社長直轄の特別プロジェクトが例外ですね)

また、先ほどの新人登録だと、社員コードが基本として、部署コード、住所コード、学歴コードや資格コードといった様々なコードが社員テーブルにつながっていくはずです。このような関係性をマップという形で表示しておくことで、関係性をわかりやすくしておくと担当者の引継ぎでも楽になります。

また、旧コードを新コードに置き換えるといった場合でもそのコードの影響範囲がすぐにわかります。そのため、影響範囲に応じた置換計画も立案しやすくなります。

とはいえ、テーブルの数が多いとリレーションも多くなり、関係性が複雑になります。そのため、いくつかの代表的なテーブルをベースとして、分割したリレーションマップをつくることをお勧めしています。

具体的には、取引テーブルのようにデータ量が多いものや社員テーブルのように関連するコードが多いものを中心に関連するコードをマップに表現するということです。また、コード同士の関係性、つまりマスタテーブル同士の対応もコード追加時の重要な資料なので、整備をしておきましょう。できれば、コードテーブルを中心にそのコードに関係している親子関係がわかるものがあると作成漏れがないので助かります。

作成時に注意する点として、コードの関係性が知りたいだけなので、テーブルの中の詳細な項目はすべているわけではないということです。仮に取引データが20項目あったとしても、キーとなる項目とコードが入る項目だけで数項目であれば、それだけで表示する方がすっきりして見やすいです。

リレーションマップは作り出すとついつい網羅性を追求しがちですが、目的に応じて分割や省略をすることがむしろ利便性があがることを覚えておいてください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする