現在、SAAS アプリケーション コードネーム FinAcuity を開発中です。これは Windows Azure プラットフォームでホストされ、プライマリ データベースは SQL Azure になります。
当社製品の技術仕様は次のとおりです。
- 開発環境 - MVC 3 (Razor) を使用した Asp.Net 4.0、Entity Framework
- データベース - SQL Azure
これが私たちのビジネスケースです:
- 当社の製品はSAAS製品であり、クライアントの財務データが含まれるため、各クライアントに個別のデータベースを提供して、より高いレベルのマルチテナント、データ分離、およびセキュリティを実現します。
- 現在、クライアントはアカウントの下に複数の会社を作成でき、これらの会社は特定のクライアント DB の下のスキーマによって分離されます。
注:テーブル構造は各スキーマで同じになります。
申請プロセスをより深く理解するためのいくつかのシナリオを次に示します。
シナリオ 1:
- クライアント登録時に新しいデータベースをプロビジョニングするために、基本構造のデータベースを作成するストア プロシージャを実行します。
- 私たちの疑問: SQL Azure でこれを行うのは正しい方法ですか、それとも別の方法がありますか?
シナリオ 2:
- クライアント データベース配下の複数のスキーマにアクセスするために、個々のスキーマに対して SSDL ファイルを動的に生成し、そのファイルを接続に使用しました。
- 私たちの疑問: 複数の接続に同じ SSDL ファイル インスタンスを使用し、接続にメタデータを渡すなど、他の方法はありますか?
シナリオ 3:
- アプリケーションはアドホック クエリと Excel ファイルからの動的テーブル作成をサポートしているため、バックエンドでストア プロシージャを実行するウィザードを提供し、クライアント データベースの特定のスキーマでウィザードからヘッダーを選択すると、そのテーブルを Excel ファイルから動的に作成します。 .
- 私たちの疑問: もしあれば、それを行うためのより良い方法を提案してください。
シナリオ 4:
- 新しいテーブルがスキーマに追加されると、EDMX ファイルを更新して、新しく作成されたテーブルからデータを取得する必要があります。これを行うには、新しく作成されたテーブルからデータを取得するストア プロシージャを実行します。
- 私たちの疑問: EDMX ファイルのランタイムを更新してデータを取得する方法はありますか?
上記のシナリオごとに、考えられる最善の解決策についてアドバイスが必要です。
前もって感謝します。
よろしくお願いします-Sahil