SQL服务器约束 - 唯一键或索引?

时间:2012-08-21 11:07:38

标签: sql-server

我有一张包含所有产品的表格。有3种不同类型的产品,因此它们有自己的表格,比方说ProductType1, ProductType2, ProductType3

Products上的ProductType(n)ProductId之间存在1-1关系,但为了进一步限制子表,使用ProductId, ProductTypeId的{​​{1}}存在额外的关系{1}},以及其他每个表格中的Products

这可确保只能将产品添加到单个匹配的ProductId, ComputedProductTypeId表中。

问题是这个。由于ProductType上的2个表之间已存在关系,而不是使用FK的索引,我是否可以使用唯一键来约束关系,或者这是否会导致性能问题?

产品

ProductId

ProductType(n)的

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

1 个答案:

答案 0 :(得分:0)

创建索引将是更好的方法 如果要从主表中删除条目,SQL Server将查找FK关系(如果存在)。因此,在复合键(包括FK)上创建索引将加快该过程。