質問

私が取り組んでいるプロジェクトは、データベースからオブジェクトとオブジェクトのコレクションを取得する方法に関するデザインのジレンマに直面しています。バッファするのが便利な場合があります *全て* データベースからのプロパティをメモリに入れたオブジェクトは、オブジェクトIDを設定してプロパティをオンデマンドで照会するだけで有用な場合があります(すべてのプロパティを取得するには、オブジェクトごとに1 dBコール)。多くの場合、コレクションは両方のバッファリングオブジェクトをメモリにサポートし、オンデマンドアクセスのための最小情報で初期化する必要があります。結局のところ、すべてをメモリにバッファリングできるわけではなく、すべてをオンデマンドで読むことができるわけではありません。それはユビキタスなメモリとIOの問題です。

誰かが同じ問題に直面しなければなりませんでしたか?デザインにどのように影響しましたか?学んだ難しい教訓は何ですか?他の考えや推奨事項はありますか?

編集: 私のプロジェクトは、Webアプリケーション、Webサービス、デスクトップアプリケーションによって消費されるビジネスレイヤーDLLの典型的な例です。デスクトップアプリケーションの製品のリストが要求され、製品名のみで表示される場合、すべての製品を表示するためのこの一連の手順を持っていても構いません(データベースに100万個の製品があるとしましょう):
1.すべての製品名を取得するための1 dBの呼び出し
2.ユーザーが製品をクリックして詳細を確認した場合、すべての製品情報を取得するための1 dbコール(オンデマンドアクセス)

ただし、この同じAPIがWebサービスによって消費され、すべての製品を詳細を記載した表示する場合、ネットワークトラフィックはおしゃべりになります。この場合のより良いシーケンスは次のとおりです。
1.一体何が、すべての製品と製品フィールドを1つのdbコールからバッファリングします(この場合、100万製品をバッファリングすることも怖く見えます)

正しい解決策はありません

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