旧サーバー

テーブルの桁数の必要性

データベースのテーブル設計で、桁数を決めているのがほとんどかと思いますが、それってどうなんだろうと、ここ1、2年思っています。
テーブルを結合するために、日付、数値や文字と言った属性を統一しておく必要はあると思っています。

私が今まで見てきたプログラムのほとんどは、データベースに桁数が指定されていても、アプリケーション側で桁数のチェックを行っていました。
データベースで桁数を指定するなら、エラー判定もデータベースにさせればいいと思ったりするが、それだと、データベースへのアクセス負荷などがあるということで、アプリケーション側でチェックしているのだ。

このパターンで、よく起こるのが、桁数を増やしたい場合に柔軟でないことである。
よくわからない理由で決められた桁数は、データベースの変更と、プログラムの変更が必要になる。
さらに、データベースアクセス方法が統一されていないと、桁数チェックのロジックが点在しており修正範囲も大きい。

桁数を決めないことで、困ることは何なのか・・・。

 1.データベースの容量設計ができない。
 2.外部に連携するデータを作る際に、単純にデーブルのアンロードとはならない。
 3.テーブルを直接操作できるような場合、誤ったデータが投入される可能性がある。

こういうことが無いのであれば、桁数は指定しなくて問題ないと思われる。
サロゲートキーを使うイメージでいるため、複合主キーの不一致などは考慮していないです。

2年ほど前に、私が設計したシステムでは実際やってみたが、問題は起きていない。
しかも、桁を増やしたいときは、データアクセスオブジェクトで制御しているためそこに与える桁数を調節するだけ。
桁数もアプリケーション側から指定できるため、使う人が桁数を好きなように設定できる。

作るシステムにもよりますが、簡単、便利にしたいと思う今日このごろ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

評価の問題

2013年11月18日