SaaS として提供される Silverlight アプリケーションを構築しています。最終製品は、WCF サービスに接続する Silverlight クライアントです。クライアントの数が多くなる可能性があるため、できればすべてのインスタンスを一度に更新できるように、更新を簡単にする必要があります。
以前にマルチテナンシーを実装したことがないので、達成方法について意見を求めています
- 簡単なアップグレード
- データセキュリティ
- スケーラビリティ
考慮すべき 3 つの異なるモデルがmsdnにリストされています
- データベースを分離します。すべてのスキーマ変更を各顧客のデータベースに個別に適用する必要があるため、これを維持するのは容易ではありません。他に欠点はありますか?プロはデータの分離とセキュリティです。これにより、顧客ごとにわずかな変更を行うこともできます (その価値よりも手間がかかる可能性があります!)。
- 共有データベース、個別のスキーマ。TenantID 列が各テーブルに追加されます。各顧客が正しいデータを取得できるようにすることは、潜在的に危険です。保守が容易で、拡張性に優れています (?)。
- 共有データベース、個別のスキーマ。最初のモデルと似ていますが、各顧客はデータベース内に独自のテーブル セットを持っています。単一の顧客のバックアップを復元するのは困難です。それ以外はモデル 1 と同様の保守性 (?)。
このテーマに関する記事の推奨事項はありますか? Silverlight SaaS アプリで同様のことを調べた人はいますか? クライアント側で何を考慮する必要がありますか?