SQL との接点は Rails を使う時くらいで、Explain でテンポラリテーブルが作られるようなクエリを極力発行しない注意くらいしかしておらず、危機感があったので読んでみました。あ、監訳者の @t_wada さんのツイートにももちろん影響されました。
実は 3 月には手に入れていたのですが、ずっと積読していて読み始めたのが先月からだったという…。とは言え、各章が 10 ページほどで収まっているので、なるべく毎日 2 章読むようにしたら、20 日ほどで読み終えることが出来ました。
第 1 章は名前はさておき知っている人も多いジェイウォーク(信号無視)。VARCHAR 型にカンマ区切りのテキストを入れてしまうアレです。さすがに私も知っているので、ニヤリとしたのを覚えています。出だしのアンチパターンとしては難易度低目で良かったです。
読む前は上記のようなテーブル設計(本書ではデータベース論理設計とある)のアンチパターンがほとんどかと思っていましたが、クエリのアンチパターンにも言及していたのが意外でした。そりゃそうか。
| 分類 | 章数 |
|---|---|
| データベース論理設計のアンチパターン | 8 |
| データベース物理設計のアンチパターン | 4 |
| クエリのアンチパターン | 6 |
| アプリケーション開発のアンチパターン | 7 |
| 付録: 正規化のルール | 1 |
個人的には Rails が所々で言及されていたのが助かりました。ポリモーフィック関連の使用はアンチパターンではあるが、Rails のような成熟した実績あるフレームワークを選べばその限りではないとか。なるほど。
私にとって少しタイムリーだった第 21 章の UUID は MySQL と Rails5 の組み合わせでは使えず 。残念…。
以上、思ったことをつらつらと書いてみました。読んで良かった。