私は、ユーザーが電話会議をスケジュールし、自分のメールアドレスを使用して人を招待できるシステムを持っています。これは、EntityFrameworkをリポジトリパターンで使用してASP.net MVC 3で実装されています。ユーザーがログインしているときに、自分が作成した、または招待された予定のコールのリストを表示するとします。このリストには、通話の詳細とオーガナイザーの名前/電子メールアドレスが表示され、オーガナイザーには、通話作成者の[ユーザー名]フィールドと[プロファイル]フィールドが保存されます。プロフィールデータの使用を最適化する
オーガナイザーがログオンしているユーザーの場合、これはうまくいきますが、別のユーザーがコールを編成したときに、UserIdによってユーザーを取得しています(呼び出しに対して保存されているため)。その名前と電子メールへのリンク - スケジュールされたコールが多数ある場合、または履歴コールのリストを追加すると、データベースのクエリが相当に多くなり、最適ではないと感じることがあります。私が検討している
2のアプローチは、以下のとおりです。コールが作成されたとき
- は、主催者の名前と電子メールを保管してください。これらの詳細は後で主催者によって更新される可能性がありますが、誤った連絡先情報が表示される可能性があります。
- ロードハッシュテーブルにすべてのユーザーの詳細や、このたびの照会 - システムは、それは初期の頃だ現在で、少数のユーザーが、しかし、で終わる可能性があり、数千
別のアプローチがあります(最大で)どちらが最適な方法でこれを解決できるかは考えていませんか?
プロファイル情報をコールに参加/含めると、それで十分ではありませんか? –
私のクエリでエンティティに参加していない.netメンバーシッププロバイダを使用しています。これを行う方法がある場合は素晴らしい? – Macros
OK、そうです。いいえ、これを行うエレガントな方法ではありません。 [this](http://blogs.teamb.com/craigstuntz/2010/03/05/38558/)を参照してください。 –