R・田中一郎さんの記事に触発されて書いてみた(笑
データベースの設計@R.TanakaIchro's Blog
http://blogs.wankuma.com/rti/archive/2006/12/14/50719.aspx
で(4)の部分で型について触れられているので僕の意見を
店番って言うと数値型選びそうなのですが、
業務中でゼロパディングして使用しているなら文字列型にしましょう。
「いや、数値型で格納して出力時にゼロパディングすればいいじゃん。」とか思われるかもしれないですけど、
それってデータの改ざん※1なんですよね。
別に"00001"も1をゼロパディングして"00001"にしても見た目は同じなんでいいっちゃいいんですが、
仮にプログラム中に数値を整形するって処理が入るとテスト工数増えますからね。
まぁなんでこんなこと書いたかと言うと今の現場で困ってるんですよね、
上記のようなことになっていて。それだけならまだいいのですが別のテーブルはCharだったりするんで※2 orz
あとプライマリーで日付を使う場合は文字列型推奨※3で、分単位で一意にしたい場合は日付型ですかね。
ほんと言うと型付けに関するルールはプロジェクトの初期段階で固めて欲しいなぁとか思ったり。
#そこまで気づくPMなんてそうそういないか^^;
※1 白状すると実は現場のPMからの受け売り・・・
※2 実はさらに桁数も違うというおまけ付き
※3 文字列型にすると例えば"99999999"は無期限を意味するとか、"00000000"は未定等の使い方ができる
投稿日時 : 2006年12月14日 20:51