0

カスタム検索機能を備えた Web サイトを開発しており、ユーザーが何を検索しているかに関する統計を収集したいと考えています。

Web サイトのコンテンツの全文検索ではなく、次のような検索モードで企業を検索します。

  • 会社名で
  • 市外局番で
  • 提供サービスによる
  • ...

検索に関する統計を保存するためのデータベースを設計する方法は?
どの情報が最も関連性が高く、どのように照会すればよいですか?

4

3 に答える 3

1

さまざまな検索モードがどのように機能するかによって異なりますが、一般的には、3列のテーブルが機能すると思います。

SearchType    SearchValue    Count

誰かが検索を行うときはいつでも、「会社名:Initech」を検索すると、最初にクエリを実行して、SearchType =「会社名」(またはこの検索タイプに指定した列挙型/ ID値)の行があるかどうかを確認します。 )およびSearchValue="Initech"。このための行がすでにある場合は、[カウント]列をインクリメントして行を更新します。この検索の行がまだない場合は、カウントが1の新しい行を挿入します。

これを行うことにより、後でクエリを実行するためのかなりの柔軟性が得られます。各タイプで最も人気のある検索は次のとおりです。

... ORDER BY Count DESC WHERE SearchType = 'Some Search Type'

最も人気のある検索タイプを把握できます。

... GROUP BY SearchType ORDER BY SUM(Count) DESC

等。

于 2009-02-05T23:30:00.590 に答える
1

これはかなり一般的な質問ですが、これが私がすることです:

オプション13 つの検索タイプすべてを厳密に分離する場合は、それぞれのテーブルを作成します。会社名については、CompanyID(Webサイトが会社のリストを維持していると仮定)と検索数を保存するだけで済みます。市外局番の場合は、市外局番と検索数を保存します。市外局番が存在しない場合は挿入してください。提供されるサービスは、セットアップに最も依存します。最も一般的な方法は、キーワードと検索数を保存し、まだ存在しない場合は挿入することです。

オプションで、検索日情報も保存できます。例として、ProvidedServicesキーワードと一意のIDを持つテーブルがあります。そのIDへのFKとSearchDateを持つ別のテーブルがあります。そうすれば、ストレージを最小限に抑えながら、時間の経過とともにデータを理解することができます。

オプション2 すべての検索を同じように扱います。キーワード列とカウント列を備えた1つのテーブルで、必要に応じてSearchDateが組み込まれています。

于 2009-02-05T23:35:58.907 に答える
0

あなたはこれをチェックしたいかもしれません:

http://www.microsoft.com/sqlserver/2005/en/us/express-starter-schemas.aspx

于 2009-02-05T23:22:04.270 に答える