1
マルチテナントSQL Serverデータベースの複合主キー
ASP Web API、Entity Framework、およびSQL Server / Azureデータベースを使用して、マルチテナントアプリ(単一データベース、単一スキーマ)を構築しています。このアプリは、1000〜5000人の顧客が使用します。すべてのテーブルにはTenantId(Guid / UNIQUEIDENTIFIER)フィールドがあります。現在、私はId(Guid)という単一フィールドの主キーを使用しています。しかし、Idフィールドのみを使用することで、ユーザーから提供されたデータが正しいテナントからのものであるかどうかを確認する必要があります。たとえばSalesOrder、CustomerIdフィールドを持つテーブルがあります。ユーザーが販売注文を投稿/更新するたびにCustomerId、同じテナントからのものかどうかを確認する必要があります。各テナントに複数のコンセントがあるため、状況はさらに悪化します。次に、確認する必要がTenantIdありOutletIdます。これは本当にメンテナンスの悪夢であり、パフォーマンスに悪影響を及ぼします。 TenantIdとともに主キーに追加することを考えていIdます。また、おそらく追加OutletIdします。だから、主キーSalesOrder:テーブルになりますId、TenantIdとOutletId。このアプローチの欠点は何ですか?複合キーを使用すると、パフォーマンスが大幅に低下しますか?複合キーの順序は重要ですか?私の問題に対するより良い解決策はありますか?