業務データのキーにDBのシーケンス番号を用いないほうがよい

筆者の経験上、業務データのキーとなるカラムをデータベースのシーケンス番号とするのは、テストする上で都合が悪いことが多い。受注番号や予約番号の発行をデータベースに任せて、番号を発行してもらうとプログラム上で番号を発行するロジックが不要で楽であるが、使わないほうが良いと考える。

理由は2つある。
ひとつはテストデータが作りにくいからである。テストデータは、テストするたびに変わってもらっては困る。毎回同じデータでなければならないが、シーケンス番号を用いるとテストデータが必ずいつも同じであるという保証がない。
二つ目はテスト環境が作りにくいからである。テスト環境は、できるだけサッと出来上がってほしい。SQLのスクリプトを実行し、全テストデータのDELETE&INSERTだけにしたい。しかし、シーケンス番号が外部キーとなっているテーブル場合、単純なINSERTだけではうまくゆかない。

トラックバック

トラックバックURL:
http://www.apricot-jp.com/cgi/mt/mt-tb.cgi/273

関連情報

Copyright(C) 2007 アーキテクト360 Allrights reserved.