2009年11月30日月曜日

SQL-Server 2008 Expressの再帰クエリーによる、電子掲示板データの一発作成

先日の記事で、SQL-Server 2008 Expressの再帰クエリーについて書かせていただきましたが、友達から「電子掲示板作成のサンプル載せて」というリクエストがありました。
そこで、今回は、先日の記事で作ったサンプルをベースにして、「再帰クエリーによる、電子掲示板(BBS)データ作成」をやらせていただきたいと思います。

電子掲示板データを格納するテーブルは、とてもシンプルなものです。
フィールドはたったの三つだけ。発言ID、レス先のID、発言内容だけです。

SQL-Server 2008 Expressの再帰クエリーを使えば、複雑なプログラムを組む事をせずに、このシンプルな情報から、発言のつながりや階層のレベル、一番最初の発言をグループ主にしたソートなど、必要な内容を迅速に得る事が出来ます。いや、迅速というよりもクエリーの一文で書けてしまうのが2008の威力。スゴイところ。

今回作ってみたサンプルの再帰クエリーの構造は、先日の部品階層データ取得クエリーを踏襲しております。
ただ、電子掲示板のデータはソートも重要なので、最上位の発言をグループ主として管理し、最後にこれを最優先のソート条件にしています。

先日の記事の繰り返しになりますが、再帰クエリーは、単独の機能ではなくて、あくまでも共通テーブル式CTEの応用なのがポイントであります。
ですから、CTEを使っていれば自然と再帰クエリーが分かってくるのかなぁと思います。

CTEは、再帰ばかりでなく、普通にビューや一時テーブルの代わりとしても重宝します。
文の外では無効になってしまうのが辛いところですが、パフォーマンスが良いみたいなので、SQL-Server 2008では積極的に使いたいなぁと思います。

それにつけても、モバイルパソコンって本当に良いもんですね。
性能の許す限り何でも出来てしまうその自由っぷりが良い。
使うたびに何回も思ってしまうんですが、Aspire 1410買って心の底から良かったなぁーって思います。

パソコンの常として、Aspire 1410も、すぐにさらに高性能な後継機が出てくるはず。
まぁAspire 1410がかすむほどの大幅進化なら、一年か二年くらいは時間がかかるでしょうが、その時はまた買いたいなぁと思えますね。

(追記)Aspire 1410の良さですが、何気にLEDバックライト液晶の良さも大きいです。まっ昼間の屋外とかの悪条件、PSPでは外光に負けて全く何も見えなくなる条件であっても、Aspire 1410なら平気だったりします。起動直後でも、色味が安定してたりしますし、LEDバックライトいいなぁと。この価格でLEDバックライト搭載とかって、エイサーどれだけ企業努力してるんだと頭が下がりますね・・・。