Submit Search
Upload
Wtm
•
2 likes
•
1,780 views
Soudai Sone
Follow
第55回「WEB TOUCH MEETING」の発表資料です。
Read less
Read more
Report
Share
Report
Share
1 of 126
Download now
Download to read offline
Recommended
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
Scala conf2013
Scala conf2013
Takafumi Ikeda
続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」
T T
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
Masatoshi Tada
Recommended
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
Scala conf2013
Scala conf2013
Takafumi Ikeda
続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」
T T
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
Masatoshi Tada
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
Shinya Mochida
Java8勉強会
Java8勉強会
賢太郎 前多
【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API
dcomsolution
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
Sadayoshi Ikushima
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
Gorinphp0729
Gorinphp0729
akitsukada
Gorinphp0729
Gorinphp0729
akitsukada
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Mikiya Okuno
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
PerlとSQLのいろいろ
PerlとSQLのいろいろ
Takuya Tsuchida
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
Kenta Oku
Webで役立つRDBの使い方
Webで役立つRDBの使い方
Soudai Sone
MlnagoyaRx02
MlnagoyaRx02
mega80b
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
yancya
Stan勉強会資料(前編)
Stan勉強会資料(前編)
daiki hojo
What is doobie? - database access for scala -
What is doobie? - database access for scala -
chibochibo
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
More Related Content
What's hot
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
Shinya Mochida
Java8勉強会
Java8勉強会
賢太郎 前多
【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API
dcomsolution
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
Sadayoshi Ikushima
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
What's hot
(6)
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
Java8勉強会
Java8勉強会
【java8 勉強会】 怖くない!ラムダ式, Stream API
【java8 勉強会】 怖くない!ラムダ式, Stream API
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
ITエンジニア怪談 ~背筋も凍る、ゾッとする話Night~
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Similar to Wtm
Gorinphp0729
Gorinphp0729
akitsukada
Gorinphp0729
Gorinphp0729
akitsukada
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
Ra Zon
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Mikiya Okuno
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
PerlとSQLのいろいろ
PerlとSQLのいろいろ
Takuya Tsuchida
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
Kenta Oku
Webで役立つRDBの使い方
Webで役立つRDBの使い方
Soudai Sone
MlnagoyaRx02
MlnagoyaRx02
mega80b
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
yancya
Stan勉強会資料(前編)
Stan勉強会資料(前編)
daiki hojo
What is doobie? - database access for scala -
What is doobie? - database access for scala -
chibochibo
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
Toshi Harada
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー
hakoika-itwg
Phpcon2015
Phpcon2015
Hiroshi Tokumaru
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
tsudaa
本当にあった怖い話し Db編
本当にあった怖い話し Db編
Oda Shinsuke
Similar to Wtm
(20)
Gorinphp0729
Gorinphp0729
Gorinphp0729
Gorinphp0729
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
PerlとSQLのいろいろ
PerlとSQLのいろいろ
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
Webで役立つRDBの使い方
Webで役立つRDBの使い方
MlnagoyaRx02
MlnagoyaRx02
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
Stan勉強会資料(前編)
Stan勉強会資料(前編)
What is doobie? - database access for scala -
What is doobie? - database access for scala -
T sql の parse と generator
T sql の parse と generator
Osc shimane-2016-do-postgres-dream-of-graph-database
Osc shimane-2016-do-postgres-dream-of-graph-database
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー
Phpcon2015
Phpcon2015
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
HiroshimaJUG の「Java8 Lambda ハンズオン with すごい広島」を5分で振り返る
本当にあった怖い話し Db編
本当にあった怖い話し Db編
More from Soudai Sone
DBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎる
Soudai Sone
レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦
Soudai Sone
PostgreSQLとpython
PostgreSQLとpython
Soudai Sone
地方エンジニアがPostgreSQLを通じて成長した話
地方エンジニアがPostgreSQLを通じて成長した話
Soudai Sone
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
DDDハンズオン
DDDハンズオン
Soudai Sone
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
Soudai Sone
今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL
Soudai Sone
Postgre sqlから見るnosql
Postgre sqlから見るnosql
Soudai Sone
中国地方Db勉強会
中国地方Db勉強会
Soudai Sone
Ansibleで始めるpostgre sqlの冗長化
Ansibleで始めるpostgre sqlの冗長化
Soudai Sone
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
Soudai Sone
Web で変わったクラウドと postgre sql の今と昔
Web で変わったクラウドと postgre sql の今と昔
Soudai Sone
すぐ始めれるクラウド
すぐ始めれるクラウド
Soudai Sone
Osc2014
Osc2014
Soudai Sone
PostgreSQLの冗長化について
PostgreSQLの冗長化について
Soudai Sone
Osh2014
Osh2014
Soudai Sone
Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)
Soudai Sone
聞いたら参加したくなるJjug cccの報告
聞いたら参加したくなるJjug cccの報告
Soudai Sone
地方における勉強会事情
地方における勉強会事情
Soudai Sone
More from Soudai Sone
(20)
DBの闇を書くにはこの余白は狭すぎる
DBの闇を書くにはこの余白は狭すぎる
レガシーな環境からモダンへの挑戦
レガシーな環境からモダンへの挑戦
PostgreSQLとpython
PostgreSQLとpython
地方エンジニアがPostgreSQLを通じて成長した話
地方エンジニアがPostgreSQLを通じて成長した話
知って得するWebで便利なpostgre sqlの3つの機能
知って得するWebで便利なpostgre sqlの3つの機能
DDDハンズオン
DDDハンズオン
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
今すぐ使えるクラウドとPostgreSQL
今すぐ使えるクラウドとPostgreSQL
Postgre sqlから見るnosql
Postgre sqlから見るnosql
中国地方Db勉強会
中国地方Db勉強会
Ansibleで始めるpostgre sqlの冗長化
Ansibleで始めるpostgre sqlの冗長化
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web で変わったクラウドと postgre sql の今と昔
Web で変わったクラウドと postgre sql の今と昔
すぐ始めれるクラウド
すぐ始めれるクラウド
Osc2014
Osc2014
PostgreSQLの冗長化について
PostgreSQLの冗長化について
Osh2014
Osh2014
Postgre sql9.3新機能 (OSC hiroshima 2013)
Postgre sql9.3新機能 (OSC hiroshima 2013)
聞いたら参加したくなるJjug cccの報告
聞いたら参加したくなるJjug cccの報告
地方における勉強会事情
地方における勉強会事情
Wtm
1.
もう怖くない!? WEBアプリケーションのDB運用
2.
What is it?
突然ですが
3.
What is it? SQLとかオワコンwww
4.
What is it? DBはボトルネックになるから嫌い
5.
What is it? データの集計が辛い
6.
What is it? そう思ってたりしませんか?
7.
What is it? 今のシステムにRDBは必要不可欠
8.
What is it? だけどRDBの勉強してますか?
9.
What is it? じゃあ何時やるか
10.
What is it?
今でしょ
11.
What is it?
今でしょ
12.
What is it? ということで今日のテーマはコレ
13.
What is it?
14.
What is it? SQLアンチパターン -
開発者を待ち受ける25の落とし穴
15.
What is it?
16.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
17.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
18.
自己紹介 名前:曽根 壮大(そね たけとも) 年齢:28歳(二十代だよ!) 職業:WEB系プログラマー 技術的にはWEB系でLLとかRDBをゴリゴリしてます。
19.
日本PostgreSQLユーザ会 Twitterは
@soudai1025 と言うアカウントで活動してます。 ※技術的なツイートは皆無です。
20.
自己紹介 最近、PostgreSQLを使ってWEBアプリ作りました。 参考ブログ: WEBアプリで勝敗チェッカー β版 を作りました!!
21.
自己紹介 オープンセミナー2014@HIROSHIMA 日時 :2014/1月の後半 定員 :100
人(ぐらい 会場 :広島市内 申込 :http://osh-web.github.com/
22.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
23.
SQLアンチパターンってなに? 諸君は自らの経験からいくらか学ぶことができるという、 全く愚かな考えであろうが、 余はむしろ他人の失敗を学ぶことで、 自分の失敗を回避することを好む。 ─オットー・フォン・ビスマルク
24.
SQLアンチパターンってなに? 失敗例+その解決方法=SQLアンチパターン
25.
SQLアンチパターンってなに? つまり、先人の失敗から学ぶ手法(本)
26.
SQLアンチパターンってなに? 今日はその中から一部をピックアップします
27.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
28.
リーダブルパスワード 敵はシステムを知っている クロード・シャノン(数学者)
29.
リーダブルパスワード 敵はシステムを知っている クロード・シャノン(数学者)
30.
リーダブルパスワード つまりパスワードの扱い
31.
リーダブルパスワード 例えばパスワードの平文保存
32.
リーダブルパスワード これは重大なセキュリティの欠陥
33.
リーダブルパスワード じゃあどうすればいいのか
34.
リーダブルパスワード
暗号化
35.
リーダブルパスワード でも暗号化だけじゃない
36.
リーダブルパスワード
参照
37.
リーダブルパスワード
つまりはこう SELECT account FROM kakenavi WHERE password= SHA2(‘deathMaster’, 256)
38.
リーダブルパスワード もしSQL文を見られたら?
39.
リーダブルパスワード MySQL スロークエリログ
40.
リーダブルパスワード PostgreSQL log_statement
41.
リーダブルパスワード PHPのエラーログ
42.
リーダブルパスワード 保存だけでなく参照の仕方も大切
43.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
44.
インプリシットカラム(暗黙の列)
自分が何を考えているかは、 実際に言葉にしてみるまでわからない E・M・フォースター(イギリスの小説家)
45.
インプリシットカラム(暗黙の列)
自分が何を考えているかは、 実際に言葉にしてみるまでわからない E・M・フォースター(イギリスの小説家)
46.
インプリシットカラム(暗黙の列)
つまりはこう SELECT * FROM kakenavi_blog WHERE status = ‘public’
47.
インプリシットカラム(暗黙の列) まさかコードの中で*使う人いないよねぇ~
48.
インプリシットカラム(暗黙の列)
実は結構いる
49.
インプリシットカラム(暗黙の列)
*を使う街角の人の声 1 columnを書くのがめんどくさい 2 ORM使ったら*になった 3 SQLは短くシンプルにしたい
50.
インプリシットカラム(暗黙の列)
なぜダメなのか
51.
インプリシットカラム(暗黙の列)
*がダメな3つの理由 1 予期せぬQueryを招く 2 パフォーマンスの低下 3 DB修正の際のバグの温床
52.
インプリシットカラム(暗黙の列)
*がダメな3つの理由 1 予期せぬQueryを招く 2 パフォーマンスの低下 3 DB修正の際のバグの温床
53.
インプリシットカラム(暗黙の列)
予期せぬQueryを招く SELECT * FROM kakenavi_blog INNER JOIN twitter ON kakenavi_blog.account = twitter.account
54.
インプリシットカラム(暗黙の列) もし両方のテーブルに同名のカラムあったら?
55.
インプリシットカラム(暗黙の列) プログラム側で間違えるかも…
56.
インプリシットカラム(暗黙の列)
予期せぬQueryを防ぐには SELECT kakenavi_blog.id as k_id twitter.id as twitter.t_id FROM kakenavi_blog INNER JOIN twitter ON kakenavi_blog.account = twitter.account
57.
インプリシットカラム(暗黙の列)
結果を明確にする
58.
インプリシットカラム(暗黙の列)
想像してみてください
59.
インプリシットカラム(暗黙の列) これがGROUP
BYだったら・・・
60.
インプリシットカラム(暗黙の列)
これがサブクエリだったら・・・
61.
インプリシットカラム(暗黙の列)
結果を明確=列を指定する
62.
インプリシットカラム(暗黙の列)
*がダメな3つの理由 1 予期せぬQueryを招く 2 パフォーマンスの低下 3 DB修正の際のバグの温床
63.
インプリシットカラム(暗黙の列)
64.
インプリシットカラム(暗黙の列)
データの動き
65.
インプリシットカラム(暗黙の列) DBサーバ
WEBサーバ Kakenavi_blog Id (int) account (var char) Blog (txet)
66.
インプリシットカラム(暗黙の列) DBサーバ
Network WEBサーバ Kakenavi_blog Id (int) account (var char) Object Blog (txet)
67.
インプリシットカラム(暗黙の列) DBサーバ
Network WEBサーバ Kakenavi_blog Id (int) account (var char) Object Blog (txet)
68.
インプリシットカラム(暗黙の列) DBサーバ
Network WEBサーバ Kakenavi_blog Id (int) account (var cher) Object Blog (txet)
69.
インプリシットカラム(暗黙の列) 列を指定してQueryをシェイプアップ!
70.
インプリシットカラム(暗黙の列)
*がダメな3つの理由 1 予期せぬQueryを招く 2 パフォーマンスの低下 3 DB修正の際のバグの温床
71.
インプリシットカラム(暗黙の列)
PHP側での処理 $sql = ‘select * from hoge'; $row = $pdo->query($sql)->fetch (); echo $row[‘4’];
72.
インプリシットカラム(暗黙の列)
もし2列目カラムを消したら?
73.
インプリシットカラム(暗黙の列)
INSERTの省略記法 --通常 INSERT INTO hoge (hoge_id, deleted, memo) VALUES (NULL, 1, ’hoge’) --省略 INSERT INTO hoge VALUES (NULL, 1, ’hoge’)
74.
インプリシットカラム(暗黙の列) もし3列目カラムが無くなったら?
75.
インプリシットカラム(暗黙の列) もし3列目カラムが変わったら?
76.
インプリシットカラム(暗黙の列) これが SELECT
INSET になったら?
77.
インプリシットカラム(暗黙の列)
誤りを防止する
78.
インプリシットカラム(暗黙の列) 列は指定する
79.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
80.
ジェイウォーク(信号無視) お客さん「1ゲーム基本一人だから」
81.
ジェイウォーク(信号無視)
出来たテーブル
82.
ジェイウォーク(信号無視)
一ヶ月後…
83.
ジェイウォーク(信号無視) お客様「ごめん、キャラやっぱ増やすわ」
84.
ジェイウォーク(信号無視) お客様「ごめん、キャラやっぱ増やすわ」
85.
ジェイウォーク(信号無視)
さぁどうする?
86.
ジェイウォーク(信号無視)
ピコーン!
87.
ジェイウォーク(信号無視) カンマ区切り(CSV)でよくね?
88.
ジェイウォーク(信号無視) ピコーン!カンマ区切りでよくね?
89.
ジェイウォーク(信号無視)
PHP側での処理 $characters = explode(‘,’, $character_column); foreach ( $characters as $key => $character ) { echo $character; }
90.
ジェイウォーク(信号無視)
解決!!
91.
ジェイウォーク(信号無視)
3年後…
92.
ジェイウォーク(信号無視) お客様「キャラのデータ入らないんだけど」
93.
ジェイウォーク(信号無視) お客様「キャラのデータ入らないんだけど」 テストでは
94.
ジェイウォーク(信号無視)
なぜか?
95.
ジェイウォーク(信号無視) カラムの大きさは有限
96.
ジェイウォーク(信号無視) これがIDだった場合
97.
ジェイウォーク(信号無視)
最初
98.
ジェイウォーク(信号無視) 10,11,12,13,14,15
99.
ジェイウォーク(信号無視)
3年後
100.
ジェイウォーク(信号無視) 1000010, 1000011, 1000012
101.
ジェイウォーク(信号無視) 限界が来ると拡張が難しい
102.
ジェイウォーク(信号無視) CSV以外にもJSONやXMLでも…
103.
ジェイウォーク(信号無視) ではどうすれば良かったか
104.
ジェイウォーク(信号無視)
リレーションする
105.
ジェイウォーク(信号無視) これでレコードの限界まで大丈夫
106.
ジェイウォーク(信号無視)
他にもこんな問題が
107.
ジェイウォーク(信号無視)
問題点 1 検索の低パフォーマンス 2 更新時の整合性が担保できない 3 集約クエリが作成出来ない
108.
ジェイウォーク(信号無視)
リレーションすれば
109.
ジェイウォーク(信号無視)
メリット 1 検索時にINDEXが効く 2 整合性が担保できる 3 集約クエリによる集計の簡略化
110.
ジェイウォーク(信号無視)
正規化大事
111.
ジェイウォーク(信号無視)
他の解決策
112.
ジェイウォーク(信号無視) PostgreSQLの柔軟な型
113.
ジェイウォーク(信号無視)
柔軟な型 1 Array型で持てる 2 XMLも持てる 3 JOSNでも持てる←New
114.
ジェイウォーク(信号無視) Indexも集計も絞り込みも思いのまま!
115.
ジェイウォーク(信号無視) だたしORMとかほぼ全滅
116.
ジェイウォーク(信号無視) PostgreSQL依存なので移行はしにくい
117.
ジェイウォーク(信号無視) なので基本は正規化
118.
ジェイウォーク(信号無視)
仕様は変わる
119.
ジェイウォーク(信号無視) それを受け止める柔軟性が大切
120.
あじぇんだ 1 自己紹介 2 SQLアンチパターンってなに? 3
リーダブルパスワード 4 インプリシットカラム(暗黙の列) 5 ジェイウォーク(信号無視) 6 まとめ
121.
まとめ アンチパターンとは先人の知恵である
122.
まとめ 愚者は経験に学び、賢者は歴史に学ぶ
123.
まとめ
アンチパターンを知るメリット 1 この問題!進研ゼミでやったところだ!
124.
まとめ
アンチパターンを知るメリット 1 この問題!進研ゼミでやったところだ! 2 悪いことを「悪い」と知れる
125.
まとめ
アンチパターンを知るメリット 1 この問題!進研ゼミでやったところだ! 2 悪いことを「悪い」と知れる 3 失敗談は鉄板ネタになる←いまここ
126.
まとめ みなさんも仲間と失敗談を共有しましょう!
Download now