Orchard CMS を使用して、SaaS アプリケーション用のマルチテナント ポータル ソリューションの実装を検討しています。マルチテナンシーがファースト クラスの機能であるように見えることを嬉しく思いますが、それを実現するには、a) テーブル プレフィックスを使用してテナントごとに一連のテーブルを作成するか、b) 持っている必要がありますテナントごとに個別のデータベース。
10,000 人以上の顧客向けのソリューションを構築しようとしていますが、テナントごとに物理的なデータ スキーマを変更する必要があるものは、スケーリングできません。私たちの SaaS アプリケーションでは、すべてのテーブルで tenantID 列を使用し、さらに nHibernate フィルターと大量のインデックスを使用して、スケーリングできるようにしています。
オーチャードでも同じことをしたいです。したがって、各テナントのテーブルの代わりに、tenantID を持つテーブルの 1 つのセットが必要です。次に、データ アクセス レイヤー (NHib) でフィルターを使用して、常に適切なデータを取得します。
質問:
1) これは可能ですか? 2) 誰かがこれをやったことがありますか? 3) 最善の方法について何か考えはありますか? MultiTenancy/NHiberate モジュールのソースを直接変更するつもりでした。