MSSQL2005 の全文検索への進出を開始しています。これは開発中の新しいデータベースなので、いじくり回すことができます。
「回答」と「コメント」という他の 2 つのテーブルと 1 対多の関係を持つ「フォーム」テーブルがあるとします。ユーザーが 1 つの検索用語を入力して、全文検索を介してこれら 3 つのテーブルすべてをペグできるようにしたいと考えています。最善の方法は何ですか?インデックス付きビューを作成して作業を高速化できるようです。
インデックス付きビューを使用する場合 (とにかくこれが最善の方法ですか?)、1 対多の関係をどのように処理すればよいですか? 私が本当に知りたいのは、子 Answer/Comment テーブルで見つかった検索結果を含む "Form" テーブルの ID だけだと仮定して、見つかったエントリを含むフォーム全体を表示できるようにします。ビューの内部結合により、複数の「マスター」フォーム行が返されます - パフォーマンスが良くないように思えます。すべての子の回答/コメント行をビューの 1 つの「列」に連結するのはどうですか? だから代わりに....
Form 1, Answer A, Comment A
Form 1, Answer B, Comment A
Form 1, Answer A, Comment B
Form 1, Answer B, Comment B
...それは...
Form 1, Answer A Answer B, Comment A Comment B
私が気にするのは、そのマスター「フォーム」行の ID だけです。
これは私には理にかなっているように思えますが、全文検索に関するベスト プラクティスがまだよくわからないので、正しくアプローチしているかどうかに興味があります。
更新:インデックス付きビューはかなり厳密なようです。左結合もサブクエリもありません。そのため、扱いにくすぎなければ、トリガーによって入力された要約テーブルのパスをたどることができます。