首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们有两个唯一的列,我们应该选择哪一列作为主键

如果我们有两个唯一的列,我们应该选择哪一列作为主键
EN

Stack Overflow用户
提问于 2015-03-22 18:58:17
回答 1查看 151关注 0票数 0

我知道唯一键和主键之间有什么区别,如下面的链接所解释的

http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/ difference between primary key and unique key

但我在面试中被问到了一些不同的问题,

如果我在一个表中有两个列,它可以唯一地识别条目,比如学生名册no和国家id no。然后选择哪一个作为主键,如果在唯一键上添加null约束,主键和唯一键之间的区别是什么。

在这个问题上有什么帮助吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-22 19:08:06

我是第三种方式的拥护者--拥有一个自动递增的整数主键。然后,您可以将唯一的索引放在其他索引上。

这样的钥匙提供了很多东西。首先,它允许您确定插入记录的顺序--至少接近接近。第二,它使外键引用更容易。我通常将这些列命名为<tablename>Id,这使得外部引用变得显而易见。

第三,整数是一种非常有效的索引机制(固定宽度值,通常是四个字节)。诚然,它们确实在原始表中产生了一些开销,但这通常是次要的。

第四,列可能不适用。在美国,最接近国民身份证号码的是一个社会保险号码--它不一定是唯一的。此外,也可能有一些学生没有这样的人数--例如,外国学生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29198513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档