2010年5月28日金曜日

有意コードと無意コード

データベースのテーブル設計においての話。
テーブル設計で、経験上解っているが「どうして?」と聞かれて説明出来なかったことがあった。


今時コードの手入力をさせることは少ないはずだが、顧客に説明しやすいとか思うのか、やたらと有意コードで設計をしたがる人がいる。
プログラマとして保守の経験がとぼしいと、いかに面倒になるか想像出来ないからだと思う。
理屈をただしく理解して上手く説明出来るようにしておきたい。


Hot Heart, Cool Mind.: コード設計の話

コード体系の破たんに歩調をあわせてプログラムも破たんしてくる。「品番の頭1桁が"9"ならサービスパーツである」という「知識」はデータベース上に明示的に存在せず、プログラムのあちこちにハードコードされているので、
…中略…
プログラムのどこを直せばよいのか、途方にくれることになる。こうした状況を避けるのが、無意コード化の意図である。

数年前にもこの記事を読んで納得し、人に説明出来なかった時にもまた読んだ。この例の様な経験を何度かした。


システムの寿命はコードで決まる!(1/3) - @IT

データベース設計の際は、コードに依存しないよう以下の点に注意する。
  • 業務で利用するコードを主キーとして利用することは避ける
  • プログラムで条件判断に利用し得る有意コードは分解する
  • システム連携がある場合、外部システムから受け取るコードの格納場所を確保する

ここでも有意コード化は避けた方が良いと有る。設計におけるポイントも書いてある。将来を考えて設計しなさいということだ。

0 件のコメント:

コメントを投稿