Web/SaaS モデルで販売されるカスタム CRM ソリューションを開発しています。このソリューションを使用するクライアントは、数十または数百に上ると予想されます。MS SQL を db エンジンとして使用します。
オプション 1 は、単一の DB を持ち、テーブルに TenantId 列、適切なインデックスを含め、各 db アクセスで「where tenantId={...}」を使用することです。
オプション 2 は、クライアントごとに個別の DB を用意し、TenantId および where 句の必要性を回避することです。
各クライアントには、数百万ではなく、数十万のレコードがあると予想しています。
私が見ているように、どのオプションを選択しても、データページの総数があります。SQL が複数の DB を管理するのに優れているのか、それとも TenantId とインデックスを持つ単一の DB を管理するのに優れているのかが、決定の中心になっているようです。最初は、ソリューションは単一の DB サーバーで実行されますが、最終的には SAN に移行します。
誰もこれについて意見を持っていますか?