0

私は現在、Entity Framework が実装されていない Silverlight / MS SQL プロジェクトに取り組んでおり、この特定の状況で計算フィールドを処理するためのベスト プラクティスを知りたいと考えています。

一部の外部システムも DB で直接または Web サービスを介してデータを消費する可能性があることを考慮して、現在確認できる 3 つのオプションを次に示します。

1) 外部システムが Web サービスを介してデータを消費するように強制し、すべての計算フィールドをオブジェクトのみに作成します。

2) DB ビューで計算フィールドを作成し、値の計算が必要になるたびにオブジェクトをサーバーと再同期します。

3) オブジェクトとデータベース ビューで計算ルールを複製します。

他の提案も歓迎します。

4

2 に答える 2

3

データの分離と最小限の機能の重複という 2 つの原則に従うことをお勧めします。どちらも、計算を 1 か所だけに配置し、既に計算されたものを提供することをお勧めします。したがって、DB に計算を実装し、Web サービスを介して提供します。

ただし、特定のケースを考慮する必要があります。たとえば、計算が非常に重い場合は、計算をクライアントに委任して、サーバー リソースを節約できます。これが、Silverlight を使用している理由である可能性さえあります。私はプロジェクトで同様の状況にあり、最良の妥協点は生データをクライアントにプッシュし、クライアントに重い計算をさせることであることがわかりました。

于 2011-06-15T12:04:32.590 に答える
1

この種の問題に対するベスト プラクティスまたはアプローチを持つことは、状況が変化するにつれて困難になります。そうは言っても、可能な場合は、計算フィールドを含む DB レベルで関連するデータをすべて実行します。これにより、データをどこから見ても同じ結果が得られることがわかります。そのため、Web サービス、SQL レポート、およびデータを表示または受信する必要があるその他のすべてで同じ結果が表示されます。

于 2011-06-15T12:01:18.823 に答える