SQL アンチパターン第21,22章を読んだ
はじめに
SQLアンチパターンについて
- 作者:Bill Karwin
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
第21章 シュードキー・ニートフリーク(擬似キー潔癖症)
テーマとしては、主キーに欠番があることだった。
個人的には、気にならない。
アンチパターンとしては以下が挙げられていた。
- 欠番を割り当てる
- 複数台のアプリケーションサーバから同時処理が行われた場合に、片方がエラーになるため良くない
- 既存行に番号を振り直す
- ステップ数が多い
- そのキーを参照しているレコードがあった場合にそちらもupdateする必要がある
- キー管理テーブルの変更も伴ってしまう
上記のようなリスクがあるため、基本的には変更をかける必要がない、識別のための番号なので連番である必要性はない。
また、GUIDについても言及があった。
GUIDとは、128bitの擬似乱数のこと。
同じ識別子が振られる可能性は極めて低いが、ディスクの使用スペースが多く値が長いことがデメリット。
第22章 シー・ノー・エビル(臭いものに蓋)
テーマはクエリのコーディングについて。
アンチパターンは以下。
- 診断せず判断する
- データベースへのアクセスした後のクエリを確認しないこと
- 画面には何も表示されないことが多い
- 見逃しがちなコード
- SQLクエリの構築時のコードしか読まないこと
ここに関しては、かなり起こりにくいアンチパターンかなと感じた。
開発者として、返り値の確認や、期待した結果が得られなかった時のデバッグ過程の中で発行されたクエリを確認することは当たり前だと思う。
灯台下暗しみたいなことなのかな。