在SQL中使用ID而不是名称更好吗?

时间:2012-11-20 01:49:06

标签: sql

  

可能重复:
  Is there a REAL performance difference between INT and VARCHAR primary keys?

这可能是一个愚蠢的问题,但是当我们在SQL中创建表时,使用ID代替名称会更好吗?

我已经为公司和客户创建了表格,我刚刚使用公司名称连接了2个表格。但是我从其他线程看到很多人使用company_ID作为主键并将其与其他表中的ID连接。

有没有充分的理由说他们使用的是ID而不是公司名称?

由于

1 个答案:

答案 0 :(得分:0)

选择使用“自然”或“代理”键时需要考虑几个因素。仔细检查每一个。 This article讨论了每种方法的一些优点和缺点。

生成的ID通常是一个不错的选择,但最佳答案可能取决于您存储的数据以及该数据库的使用方式。例如,在书籍数据库的情况下,标题不会成为一个好的主键,因为两个作者可能会写不同的书但使用相同的标题。 ISBN可能是一个很好的自然关键。通常认为自然键不便于改变。书籍的ISBN多久会发生变化?另一方面,公司名称偶尔会发生变化。

使用公司编号也很常见,但这些通常已由会​​计部门指定。为什么您更愿意存储生成的CompanyID,并且始终必须查找ID引用的CompanyNbr?