2010-07-22 59 views
0

我有一个关于数据库设计的问题。查找表和使用主键

我有一个实体表命名为:CARS 和 我有一个名为查找表:颜色

表车型有:ID,姓名 和 表COLORS刚:ColorName

表的缤纷色彩一个简短的颜色列表,而CARS可能会有一长串实体。

CARS在ID上有一个主键。

我的问题是:

  • 添加上ColorName查找表颜色的主键,可以提高性能?

表车型将有ID的聚集索引。

  • 你有道理有一个CARS上的颜色姓名集群索引 感谢gus为您的时间!

回答

2

聚集索引可以提高检索或插入的速度,但只有当数据按照与索引顺序匹配的顺序检索或更新/插入时。

否则会降低性能。

有关更详细的答案,该问题需要更具体。

2

这是一个有点奇怪。您希望COLORS表具有ColorID和ColorName,ColorID上的聚集索引和CARS表上的外键。如果我理解正确。

0

1 - 如果COLORS是一个短表,它可能会提高性能,但可能不会引人注目。

2 - 你只能有一个聚集索引,它使从你给了它是在ID有限的信息更有意义。您将在ColorName中有重复的条目。

你为什么不改变colorname到ColorId,一个ID列添加到颜色和使用,作为一个聚集索引/主键?

+0

感谢JNKyle,COLORS应该是一个查找表,我需要每一种颜色都有独特的价值。如果我理解你的信息,COLORS上的ID Column就不适合我。 在这种情况下,聚集索引将只在ColorName上...您认为这可能是一个合适的解决方案吗?谢谢 – GibboK 2010-07-22 10:14:01

+0

如果这是COLORS中唯一的一列,它会起作用。对我来说,让一个ID与颜色相关联以节省主表中的空间更有意义。而不是在该字段中的12位或任何长度的颜色名称,您有1或2位的colorID。 – JNK 2010-07-22 10:17:35

+0

我没有想过在主表中保存空间,好点!我会继续考虑再次感谢! – GibboK 2010-07-22 11:32:39