2011-01-29 15 views
0

ユーザーの検索履歴をすべて追跡して表示する必要があります。 1つの検索項目につき1つの行は、これを保存する最良の方法ではないように見えます。この種のデータを保存するには、他にどのような技術がありますか。これは一度だけの書き込みであり、常に読み込まれます。検索履歴は多くのページに表示されます。検索履歴 - スキーマの提案?

答えて

1

私は、ビジネスニーズとソルトトンとの潜在的な技術的問題(I.E.、データベースパフォーマンス)を分けることから始めます。

ビジネス上のニーズは、問題を明確にし、期待される結果が何かを明確にする必要があります。たとえば、すべての検索履歴を保存する必要がありますが、UIの目に見える部分に最新の50件だけを表示する必要があります。残りの検索履歴は、何らかのグループ分け(I.E.、年月)で表示され、別の画面/レポートからUI内にのみ表示されることがあります。

この必要性を理解すると、最も簡単で最も可能性の高いソリューションが表示されます。パフォーマンスがトラック上の問題である場合は、データを縦方向または横方向に分割することができます。最新の50件の検索のみを保持する上記の例を使用すると、アーカイブされた検索の最新の最新情報と他のテーブルを含む1つのテーブルを持つ複数のテーブルソリューションを作成できます。アーカイブされた検索履歴をXMLデータ型の何らかの形式で保存することができます。

希望するこれは役に立ちます

+0

私が知っている限り、XMLデータは照会できません。そうすれば、アーカイブされたデータはテーブルに戻されるまで無駄になります。 – SeanD

1

それが大きくて大きく成長するのは何が問題なのですか?どのくらい大きなですか?どのくらい遅いですか?

1億の行を含むテーブルから100行を検索するのにどれくらい時間がかかるかテストしましたか?インデックスについてどれだけ知っていますか?正規化されたデザインについてスタースキーマの設計について

+0

これは100行ではありません。それは、今までに検索された、または誰かが入力したすべての単語を記録する生涯です。私は何かをする前に、このタイプの要件のための最良のデザインが何であるかを見ています。 – SeanD

関連する問題