2

現在、WCF を使用してアプリのサービスを開発しています。このデータを windows-azure でホストしたいのですが、さまざまなユーザーからのデータをホストする必要があります。データベースの適切な設計を探しています。私の意見では、2 つの異なる可能性しかありません。

  • 顧客ごとに新しいデータベースを作成する
  • すべてのテーブル (またはすべてのテーブルがエンティティを介して接続されている場合はメイン テーブル) に顧客 ID を格納します。

最初のアプローチは非常に優れた速度と分離性を備えていますが、Windows azure では非常に拡張性があります (または、azure の価格設定が間違っていることを理解していますか?)。また、常に別のデータベースを使用するように WCF サービスを構成する方法もわかりません。

2 番目のアプローチは速度が遅く、分離も不十分です。しかし、実装は簡単で安価です。

私の質問に:データを高度に分離し、Azure を使用して WCF サービスに簡単に統合する方法は他にありますか? どのデザインを使用する必要がありますか? その理由は?

4

1 に答える 1

4

追加のオプションが 2 つあります。データベース内に複数のスキーマ コンテナーを構築するか (この手法については、私のブログ記事を参照してください)、SQL データベース フェデレーションをより適切に使用します ( Enzo SQL Shardと呼ばれる私のオープンソース プロジェクトを使用してフェデレーションにアクセスできます)。私が提供しているリンクから、他のオプションにもアクセスできます。

最終的には、パフォーマンス、セキュリティ、および管理性のトレードオフを伴うかなり複雑な決定になります。フェデレーションには独自の制限がありますが、通常はフェデレーションをお勧めします。これは、データを自動的にフィルター処理するオプションを備えたクラウドの柔軟なマルチテナント オプションであるためです。オープン ソース プロジェクトを確認してください。物理ストレージとは別に顧客のデータを適切に分離する方法を確認できます。

于 2013-03-15T12:06:41.497 に答える