やめたほうがいいテーブル設計 ~コードマスター~

コードマスターとは

コードマスターとは、システムで使用する複数の項目とそのコード値を1つのテーブルにまとめたものです。

(例)

項目区分 コード 名称
01 a001
01 a002
01 a003
01 a004
02 0001 北海道
02 0001 青森

コードマスターの問題点

  • 意味の異なる項目が1つのカラムに混在してしまう

上記例の場合、名称カラムに春、夏、秋、冬という、四季を表す項目と北海道、青森のような、都道府県を値に持つ項目が1つのカラムに登録されています。
これは、リレーショナルデータベースのテーブル設計思想に反するものになります。

  • カラム名から登録される項目の推測ができない

上記例の場合、コードに対応した値のカラムのカラム名が名称となっています。
そのため、実際に登録されているデータを見るまで名称カラムに登録されている値が何であるかがわかりません。

そして、何が登録されているかわからないために、システムの運用・保守で問題があった場合に問題を特定することが難しくなります。
なぜなら、ソースコードだけでは、問題特定ができずに、テーブルに登録されたデータの中身まで範囲を広げて解析することになるためです。

  • システムの拡張に伴うコードの変更に対応できない場合がある

テーブルはシステム開発の初期の段階で、登録可能な項目、桁数、そしてデータの型を決定します。
そのため、コードマスターに登録している項目のコードの桁数を変更する場合、変更が不要な項目のコードまで変更しないといけなくなります。

そして、システムの運用上、一部のコードの桁数の拡張がマストの場合、コードマスターに登録されているすべてのコードに対する修正および、テストが必要となります。

テーブル設計について学びたい方へ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

グラス片手にデータベース設計 ~会計システム編 (DB Magazine Selection)

グラス片手にデータベース設計~生産管理システム編 (DB Magazine Selection)

グラス片手にデータベース設計~生産管理システム編 (DB Magazine Selection)

絵で見てわかるシステム構築のためのOracle設計 (DB Selection)

絵で見てわかるシステム構築のためのOracle設計 (DB Selection)

実践的データモデリング入門 (DB magazine selection)

実践的データモデリング入門 (DB magazine selection)