https://www.slideshare.net/t_wada/sql-antipatterns-digest?next_slideshow=19520294


SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
-
- 和田 卓人 (@t_wada) Apr 20, 2013 @ デブサミ再演 SQL アンチパターン (拡大版)
- 2. 和田 卓人 id: t-wada @t_wada github: twada
- 4. 1. アンチパターンとは 2. 本書のダイジェスト 3. おわりに Agenda
- 5. アンチパターンとは べからず集 あるある集 だけでは無い
- 6. 0. 名前 1. 目的 2. アンチパターン 3. アンチパターンの見つけ方 4. アンチパターンを用いても良い場合 5. 解決策 名前重要!! 本書のアンチパターンの構成
- 7. 例: ナイーブツリー (素朴な木) 名付けの例
- 8. パターン名が英語そのままカタカナ表記であ るのは、目次を見ただけではビックリするポ イントですね。 ただ、チーム内で相談するときなどに目立つ 名前が付いているのはむしろありがたいです し、何よりなんかカッコよくておもしろかっ たです! http://d.hatena.ne.jp/moro/20130205/1360044434 なぜカタカナ!?
- 9. 0. 名前 1. 目的 2. アンチパターン 3. アンチパターンの見つけ方 4. アンチパターンを用いても良い場合 5. 解決策 実例: ナイーブツリー(素朴な木)
- 10. 目的: 階層構造を格納し、クエリを実行する
- 11. 0. 名前 1. 目的 2. アンチパターン 3. アンチパターンの見つけ方 4. アンチパターンを用いても良い場合 5. 解決策 実例: ナイーブツリー(素朴な木)
- 12. アンチパターンとは何でしょうか。それは、 問題の解決を意図しながらも、しばしば他の 問題を生じさせてしまうような技法を指しま す。 ─ Bill Karwin よかれと思って裏目 に出てしまうもの
- 13. CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, ); 親idが入る アンチパターン: 常に親のみに依存する
- 14. SELECT c1., c2., c3., c4. FROM Comments c1 -- 1階層目 LEFT OUTER JOIN Comments c2 ON c2.parent_id = c1.comment_id -- 2階層目 LEFT OUTER JOIN Comments c3 ON c3.parent_id = c2.comment_id -- 3階層目 LEFT OUTER JOIN Comments c4 ON c4.parent_id = c3.comment_id -- 4階層目 アンチパターンにより起こること 素朴すぎる故に アンチパターン
- 15. 0. 名前 1. 目的 2. アンチパターン 3. アンチパターンの見つけ方 4. アンチパターンを用いても良い場合 5. 解決策 実例: ナイーブツリー(素朴な木)
- 16. 直面している問題の種類や、メンバー間の会 話での何気ない言葉が、そこにアンチパター ンがあるかもしれないことに気づくヒントに なります。 ─ Bill Karwin