発売されてしばらく経ちましたがまとめました。
- 作者: Bill Karwin,和田卓人,和田省二,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/01/26
- メディア: 大型本
- 購入: 9人 クリック: 698回
- この商品を含むブログ (46件) を見る
電子書籍はこちら https://www.oreilly.co.jp/books/9784873115894/
ご存じない方に概要を説明すると、DBを扱う際の「やってはいけないこと」集です。
まとめにあたっては、各章1行で終わることを重視して、アンチパターンのみを否定文の形式で記載し、解決策については省きました。
論理設計
章 | タイトル | 一言まとめ |
---|---|---|
1. | Jaywalking | 一つのフィールドにカンマ区切りで複数の値を格納するな |
2. | Naive Trees | 再帰的に参照する親を直接参照するな |
3. | Id Required | すべてのテーブルでId列を設定しようとするな |
4. | Keyless Entry | 外部キーを避けるな |
5. | Entity-Attribute-Value | 汎用的な属性テーブルを作成するな |
6. | Polymorphic Associations | 複数テーブルを参照しようとする外部キーを作るな |
7. | Multi-Column Attributes | Tag1,Tag2,Tag3...のような列挙のために複数の列を作成するな |
8. | Metadata Tribbles | テーブルの行数を減らすために列やテーブルを分割するな |
物理設計
章 | タイトル | 一言まとめ |
---|---|---|
9. | Rounding Errors | FLOATデータ型は避けろ |
10. | 31 Flavors | ENUMデータ型は避けろ |
11. | Phantom Files | 画像ファイルを必ずしも外部に格納するな |
12. | Index Shotgun | インデックスを全くしない、またはテキトーに設定するのやめろ |
クエリ
章 | タイトル | 一言まとめ |
---|---|---|
13. | Fear of the Unknouwn | NULLとその他の一般値を混同するな |
14. | Ambiguous Groups | 単一値の原則に反するクエリを書くな |
15. | Random Selection | データをランダムにソートするな |
16. | Poor Man's Search Engine | パターンマッチ述語を使用して全文検索するな |
17. | Spaghetti Query | 無理に一つのクエリにまとめるな |
18. | Implicit Columns | Select * やめろ |
アプリケーション開発
章 | タイトル | 一言まとめ |
---|---|---|
19. | Readable Passwords | パスワードを平文で保存するな |
20. | SQL Injection | 動的SQLクエリの入力に対する検証を省くな |
21. | Pseudokey Neat-Freak | 欠番は埋めるな |
22. | See No Evil | 例外処理をおろそかにしたり、最終的に発行されたSQLを確認しようとしないのやめろ |
23. | Diplomatic Immunity | データベース開発を特別扱いしてアプリケーション開発から切り離すな |
24. | Magic Beans | データベースアクセスクラスをモデルクラスとして使用するな |
25. | 砂の城 | サービスの長期的な安定稼働のための施策を怠るな |
この書籍では一つのアンチパターンを簡潔にワンフレーズで言い表しています。すると、二人とも内容を身に着けている場合、以下のようにコミュニケーションを洗練できます。例えばジェイウォーキングの場合、
「このテーブルのこの列、データをカンマ区切りで複数入れられるようになっているけど、これって良くないよね。なんでかっていうとえーっと…」
↓
「このカラム、ジェイウォーキングだね」
補足
- t_wadaさんの充実した資料