1

すべての製品を含むテーブルがあります。製品には 3 つの異なるタイプがあるため、これらには独自のテーブルがありますProductType1, ProductType2, ProductType3

ProductsProductType(n)onの間には 1 対 1 の関係がありますがProductId、子テーブルをさらに制約するために、 ProductId, ProductTypeIdinProductsとin を使用した追加の関係がありProductId, ComputedProductTypeIdます。

これにより、製品を単一の一致ProductTypeテーブルにのみ追加できるようになります。

質問はこれです。ProductIdFK のインデックスを使用するのではなく、上の 2 つのテーブル間に既に関係があるため、一意のキーを使用して関係を制限できますか?それともパフォーマンスの問題が発生しますか?

製品

PK ProductId
FK ProductId, ProductTypeId
 ^
*Add an index for this or unique key constraint?*

製品タイプ(n)

PK ProductId
FK ProductID, ComputedProductTypeId (fixed int)
4

1 に答える 1

0

インデックスを作成する方が良いアプローチになります。
マスターテーブルからエントリを削除する場合、SQLサーバーはFKリレーションが存在する場合はそれを検索します。したがって、複合キー(FKを含む)にインデックスを作成すると、プロセスが高速化されます。

于 2012-08-21T11:33:24.577 に答える