EF4 と SQL Server で動作し、AppHarbor でホストされている既存の Web サイトがあります。個人がインターネットに接続せずにローカルで実行できるスタンドアロン バージョンを作成する必要があります。SQL をリッピングして、RavenDB に置き換えることを考えています。データ構造はこれに適していると思います。
高レベルの観点では、これが構造です
User
- Elections
- People
- Locations
- Ballots
- Votes
Web サイトの各ユーザーは、多数の「選挙」を作成できます。各選択は完全に自己完結型であり、それを作成したユーザーと、それを共有する「ゲスト」ユーザーのみが認識します。
まだ答えが見つからないいくつかの質問を次に示します。
現在選択されている「選挙」のみへのアクセスを分離するにはどうすればよいですか? 各linqステートメントには、範囲を選挙に限定するために「where」句を含める必要がありますか?それとも、選挙を「ロード」して「内部」で動作させることができますか? 使用する必要があります
db.Query<Person>().Where(p=>p.Election==currentElection)
か、または次のようなことができますelection.Query<Person>()
か?各人物には、検索したい「Firstname」、「LastName」、「OtherNames」、「ExtraInfo」などの最大 6 つのフィールドがあります。部分一致を探して、選挙ですべての人物を頻繁かつ迅速に検索する必要があります。これらすべての分野で。「soundex」タイプのマッチングもお願いします。インデックスは役に立ちますか、それとも「ブルートフォース」を使用してすべての人をループするだけですか? 選挙に 50,000 人が参加した場合、1 秒未満の応答を得ることができますか?
各ユーザーが自分の選挙のリストを取得して使用できるように、ドキュメントをどのように構成すればよいですか? 選挙のリストを表示するときに、各選挙に関する要約情報を表示したいと考えています。それは User オブジェクトに「事前に保存」する必要がありますか? または、リストを表示するときに、各選挙の一部を読み込んで詳細 (人数、選挙の属性など) を取得する必要がありますか。
ご協力いただきありがとうございます。