2016年03月28日

[書評]SQLアンチパターン2章を読んだ

blogramランキング参加中!

SQLアンチパターン

新品価格
¥3,456から
(2016/3/28 22:26時点)



[書評]SQLアンチパターン1章を読んだ
の続編

2章もかなりためになりました
以下、SQL

・本章の内容
木構造のコメントを
どうやってSQLで処理するかという話
これ地味に困ってたので結構ためになりました


・アンチパターン
コメントの一個前のidを持っておく
一個ずつjoinしていくので結構時間かかると思う
SQLこんな感じ。
select c1.*, c2.*, c3.*, c4.*
from comments c1
left outer join comments c2
on c2.parent_id=c1.comment_id
left outer join comments c3
on c3.parent_id=c2.comment_id
left outer join comments c4
on c4.parent_id=c3.comment_id


・再帰クエリ
with 使うと再帰クエリが使えるとのこと
ちなみにmysqlで使えない


・pathを指定する
/1/2/3/4
みたいなpathをDBに入れて
likeで当てる
1以下すべて取りたいなら
/1 LIKE path + '%'
で取得できる。
ただしこの方法だと
insertするたびにメンテナンスが必要


・左右の枠を指定する
nsleftとnsrightを作って
その間にあるのが子ノードとするやり方。
insertするたびにメンテナンスが必要だが
nsleftとnsrightで子ノードを特定できるので
pathよりもメンテナンスが楽。


・管理テーブルを作る
親と子を管理するテーブルを作る
テーブルが一個余計にいるけど一番柔軟性が高い
孫とかもテーブルで管理する



非常に面白い章でした。
SQLアンチパターンは名著の予感がします。
ツリー構造のコメント作るの大変だったんですよね。
まだまだこの本は楽しめそうです
続く
タグ:SQL
posted by マスタカ at 22:28 | Comment(0) | TrackBack(0) | | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック