0

EF4 と SQL Server で動作し、AppHarbor でホストされている既存の Web サイトがあります。個人がインターネットに接続せずにローカルで実行できるスタンドアロン バージョンを作成する必要があります。SQL をリッピングして、RavenDB に置き換えることを考えています。データ構造はこれに適していると思います。

高レベルの観点では、これが構造です

User
 - Elections
   - People
   - Locations
     - Ballots
       - Votes

Web サイトの各ユーザーは、多数の「選挙」を作成できます。各選択は完全に自己完結型であり、それを作成したユーザーと、それを共有する「ゲスト」ユーザーのみが認識します。

まだ答えが見つからないいくつかの質問を次に示します。

  1. 現在選択されている「選挙」のみへのアクセスを分離するにはどうすればよいですか? 各linqステートメントには、範囲を選挙に限定するために「where」句を含める必要がありますか?それとも、選挙を「ロード」して「内部」で動作させることができますか? 使用する必要がありますdb.Query<Person>().Where(p=>p.Election==currentElection)か、または次のようなことができますelection.Query<Person>()か?

  2. 各人物には、検索したい「Firstname」、「LastName」、「OtherNames」、「ExtraInfo」などの最大 6 つのフィールドがあります。部分一致を探して、選挙ですべての人物を頻繁かつ迅速に検索する必要があります。これらすべての分野で。「soundex」タイプのマッチングもお願いします。インデックスは役に立ちますか、それとも「ブルートフォース」を使用してすべての人をループするだけですか? 選挙に 50,000 人が参加した場合、1 秒未満の応答を得ることができますか?

  3. 各ユーザーが自分の選挙のリストを取得して使用できるように、ドキュメントをどのように構成すればよいですか? 選挙のリストを表示するときに、各選挙に関する要約情報を表示したいと考えています。それは User オブジェクトに「事前に保存」する必要がありますか? または、リストを表示するときに、各選挙の一部を読み込んで詳細 (人数、選挙の属性など) を取得する必要がありますか。

ご協力いただきありがとうございます。

4

1 に答える 1

1

1) はい、where 句を追加する必要があります。election.Query<Person>()独自の拡張メソッドを追加すれば、できます。2) インデックスを使用したい。あなたはそのスピードとそれ以上のものを手に入れるでしょう。注文検索については、http: //ayende.com/blog/152833/orders-search-in-ravendbをご覧ください 。

于 2012-12-19T01:07:40.747 に答える