質問

10個の「カテゴリ」があるとします。 Webアプリで参照する必要があること。現在、これらのカテゴリをDBに保存し、ベースページのページ読み込み中にそれらを取得し(カテゴリ名とID)、ハッシュテーブルに格納してから、ハッシュテーブルを使用してカテゴリを参照しています。各ページの読み込み中にDB呼び出しが行われていることに気付きました。これらのカテゴリは、特定のセッション中に変更されることはないため、一度だけ取得する必要があります。これを行う最善の方法は何ですか?

  1. 私がしていることは何でもしますが、アプリケーション変数として保存しますか?

  2. コード内のカテゴリをハードコーディングし、データベースを廃止しますか?

  3. カテゴリをセッション変数に保存しますか?そして、セッションが空の場合にのみDBを呼び出しますか?

  4. 他に何かありますか?

このようなことを行うためのベストプラクティスは何かを知りたいだけです。

役に立ちましたか?

解決

カテゴリがユーザーに依存する場合、セッション変数に保存します。それ以外の場合は、ASP.NETキャッシング機能(または優先分散キャッシング)を使用します。これにより、データベースのヒットを回避しながら、カテゴリをキャッシュする期間を制御できます。

他のヒント

データベースの呼び出しは、見かけほど高くない場合があります。通常のWebサイトでは、ページの読み込みごとに何十ものDBが呼び出されます。しかし、パフォーマンスの点で面倒になる場合は、ORMソリューションの使用を検討してください。優れたオープンソース NHibernate が思い浮かびます。これは「事実上の」ものです。データベースをクラスおよびオブジェクトにマッピングするための標準。マッピング以外に、 2つのレベルのキャッシングと接続プーリングを自動的に提供します。面倒なことをせずに、あなたのウェブサイトは他のどのウェブサイトよりも地滑りで優れています。

ORMを使用することのマイナス面は?多くの人にとって、それはかなり急な学習曲線と考えられています。これを読みたい場合は、必ず NHibernate Best Practices 。最初は読みにくいが、間違いなく価値がある。

NHibernateと FluentNHibernate を組み合わせると、簡単に使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top