0

可能重复:
INT 和 VARCHAR 主键之间是否存在真正的性能差异?

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

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

他们使用身份证而不是公司名称有什么好的理由吗?

谢谢

4

1 回答 1

0

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

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

使用公司编号也很常见,但这些通常已经由会计部门分配。为什么您更喜欢存储生成的 CompanyID,并且总是必须查找 ID 所指的 CompanyNbr?

于 2012-11-20T06:35:34.773 回答