2017-02-14 4 views
0

で検索、私は以下のような3つのテーブルがあります。
enter image description hereEntity Frameworkの - 私のDBにおける3つのテーブルを効率的

を私はまた、訪問者が国、州や市で検索すると、あなたのようにできている私のページでオートコンプリートのフィールドを持っています3文字を挿入した後に知っていれば、挿入された各文字によって検索が行われます。今は順番に各テーブルを検索するのに非常にコストがかかるようです。

私はまた、Cityが最も検索されたフィールドであることを知っています。私の場合、どのような検索方法をとるべきでしょうか?私はまだ私のWebアプリケーションを展開していないと言及する必要があり、私はテーブルとそれの関係を変更することができます。

コードサンプルは素晴らしいでしょう。事前に
おかげで
MAここ

+0

まずはあなたの関係が間違っています。あなたが持っているものはすべて1つのテーブルにすべて保存できます。効率的な検索とオートコンプリートなどについては、いくつかのデータをキャッシュする必要があります。 –

+0

@マークホーマーは、すべてのテーブルを1つのテーブルに格納することについて、テーマを1つのテーブルに保存すれば、各国の都市をどのように区別することができますか? –

答えて

0

あなたは二つのこと

  1. すべての3つのテーブルを組み合わせフラットな(非正規化データ)テーブルを作成し、その中に検索を行う

    を行うことができます。また、フラットテーブルデータを実際のテーブルのデータと同期させるために、このテーブルにトリガをいくつか作成する必要があります。

  2. 第2の方法では、条件付きで各テーブルを検索する必要があります。あなたの場合のように、都市は最も検索する可能性が最も高いです。

    a。各テーブルを検索

    b。結果を共通タイプに変換する

    c。結果をマージする

    d。このマージされたリストからソート/選択してください

関連する問題